<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <link rel="canonical" href="https://blog.csdn.net/a649344475/article/details/81234825"/>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="renderer" content="webkit"/>
    <meta name="force-rendering" content="webkit"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="report" content='{"pid":"blog"}'>
    <meta name="referrer" content="always">
    <meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="alternate" media="handheld" href="#" />
    <meta name="shenma-site-verification" content="5a59773ab8077d4a62bf469ab966a63b_1497598848">
        <meta name="csdn-baidu-search"  content='{"autorun":true,"install":true,"keyword":"Python Websocket - 医然"}'>
    
    <link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON">
    <title>Python Websocket - 医然 - CSDN博客</title>
    <meta name="description" content="一、创建项目（dj_websocket）： 1、创建项目 python django-admin.py startproject dj_websocket 2、进入项目 cd dj_websocket 3、创建APP（myapp） python manage.py startapp myapp 4、创建，static （静态文件夹），已经 templates（模板文件夹） mkdi...">

        
                    <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/detail-52bde8d329.min.css">
                            <script type="application/ld+json">{"@context":"https:\/\/ziyuan.baidu.com\/contexts\/cambrian.jsonld","@id":"https:\/\/blog.csdn.net\/a649344475\/article\/details\/81234825","appid":"1563894916825412","title":"Python Websocket - \u533b\u7136","images":["https:\/\/img-blog.csdn.net\/20180727115057396?watermark\/2\/text\/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E2NDkzNDQ0NzU=\/font\/5a6L5L2T\/fontsize\/400\/fill\/I0JBQkFCMA==\/dissolve\/70","https:\/\/img-blog.csdn.net\/20180727120043196?watermark\/2\/text\/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E2NDkzNDQ0NzU=\/font\/5a6L5L2T\/fontsize\/400\/fill\/I0JBQkFCMA==\/dissolve\/70","https:\/\/img-blog.csdn.net\/2018073019070643?watermark\/2\/text\/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E2NDkzNDQ0NzU=\/font\/5a6L5L2T\/fontsize\/400\/fill\/I0JBQkFCMA==\/dissolve\/70"],"pubDate":"2019-11-19T23:31:11"}</script>
    
            <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/themes/skin-blackboard/skin-blackboard-d7f45a1ae5.min.css">
    
<!--    自定义皮肤样式-->
    
    <script type="text/javascript">
        var username = "a649344475";
        var blog_address = "https://blog.csdn.net/a649344475";
        var static_host = "https://csdnimg.cn/release/phoenix/";
        var currentUserName = "";
        var isShowAds = true;
        var isOwner = false;
        var loginUrl = "http://passport.csdn.net/account/login?from=https://blog.csdn.net/a649344475/article/details/81234825"
        var blogUrl = "https://blog.csdn.net/";

        var curSkin = "skin-blackboard";
        // 收藏所需数据
        var articleTitle = "Python Websocket";
        var articleDesc = "一、创建项目（dj_websocket）： 1、创建项目 python django-admin.py startproject dj_websocket 2、进入项目 cd dj_websocket 3、创建APP（myapp） python manage.py startapp myapp 4、创建，static （静态文件夹），已经 templates（模板文件夹） mkdi...";
        // 第四范式所需数据
        var articleTitles = "Python Websocket - 医然";
        
        var nickName = "医然";
        var isCorporate = false;
        var subDomainBlogUrl = "https://blog.csdn.net/"
        var digg_base_url = "https://blog.csdn.net/a649344475/phoenix/comment";
        var articleDetailUrl = "https://blog.csdn.net/a649344475/article/details/81234825";
        var isShowThird = "1"
    </script>
    <script src="https://csdnimg.cn/public/common/libs/jquery/jquery-1.9.1.min.js" type="text/javascript"></script>
    <!--js引用-->
            <script src="//g.csdnimg.cn/??fixed-sidebar/1.1.6/fixed-sidebar.js,lib/fingerprintjs2/2.1.0/fingerprint2.min.js,report/1.1.1/report.js" type="text/javascript"></script>
    <link rel="stylesheet" href="https://csdnimg.cn/public/sandalstrap/1.4/css/sandalstrap.min.css">
    <style>
        .MathJax, .MathJax_Message, .MathJax_Preview{
            display: none
        }
    </style>
</head>
<body class="nodata " > 
    <link rel="stylesheet" href="https://csdnimg.cn/public/common/toolbar/content_toolbar_css/content_toolbar.css">
    <script id="toolbar-tpl-scriptId" src="https://csdnimg.cn/public/common/toolbar/js/content_toolbar.js" type="text/javascript" domain="https://blog.csdn.net/"></script>
    <script>
    (function(){
        var bp = document.createElement('script');
        var curProtocol = window.location.protocol.split(':')[0];
        if (curProtocol === 'https') {
            bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
        }
        else {
            bp.src = 'http://push.zhanzhang.baidu.com/push.js';
        }
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(bp, s);
    })();
</script>
<div id="kp_box_476" data-pid="476"><script src="//csdnimg.cn/public/common/indexSuperise/1.1.1/indexSuperise.js?20190111165312"></script><script>window.csdn.indexSuperise({smallMoveImg:'https://img-bss.csdn.net/1563176736560.png',bigMoveImg:'https://img-bss.csdn.net/1563176731384.png',link:'https://kunyu.csdn.net?d=2&m=cSAnQQJnJiEJiHbLtJcLDmnpHcQLmyiSHLpinfSyXbbEAbHtiSDLXvHQEiWbQiSiiJptEAUiLypXQvotmJSiitHJtLnpnctnEbQQ&k=&dest=https%3A%2F%2Fedu.csdn.net%2Ftopic%2Fai30%3Futm_source%3Dblogpopup4&timestamp=1573805046432&signature=4617d3fc064fc7fa65c511e45dcf1e6aaab60feb',trackSuperId:476,smallMove:'notMove',trackSId:1087});</script><img class="pre-img-lasy" data-src='https://kunyu.csdn.net/1.png?d=2&k=&m=cSAnQQJnJiEJiHbLtJcLDmnpHcQLmyiSHLpinfSyXbbEAbHtiSDLXvHQEiWbQiSiiJptEAUiLypXQvotmJSiitHJtLnpnctnEbQQ'></div><link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/blog_code-c3a0c33d5c.css">
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/vendor/pagination/paging-e040f0c7c8.css">

<script type="text/javascript">
	var NEWS_FEED = function(){}
</script>

<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/chart-3456820cac.css" />
<div class="main_father clearfix d-flex justify-content-center" style="height:100%;"> 
    <div class="container clearfix" id="mainBox">
        <div  class='space_container'></div>
        <main>
            <div class="blog-content-box">
    <div class="article-header-box">
        <div class="article-header">
            <div class="article-title-box">
                <span class="article-type type-1 float-left">原创</span>                <h1 class="title-article">Python Websocket</h1>
            </div>
            <div class="article-info-box">
                <div class="article-bar-top">
                                                                                                                                                                <span class="time">2018-07-27 11:52:59</span>
                    <a class="follow-nickName" href="https://me.csdn.net/a649344475" target="_blank" rel="noopener">医然</a>
                    <span class="read-count">阅读数 2136</span>
                                                                    <div class="tags-box space">
                                <span class="label">分类专栏：</span>
                                                                                                            <a class="tag-link" target="_blank" rel="noopener"
                                           href="https://blog.csdn.net/a649344475/article/category/7777084">
                                            django                                        </a>
                                                                                                                                                <a class="tag-link" target="_blank" rel="noopener"
                                           href="https://blog.csdn.net/a649344475/article/category/7841675">
                                            websocket                                        </a>
                                                                                                </div>
                                        </div>
                <div class="operating">
                                    </div>
            </div>
        </div>
    </div>
    <article class="baidu_pl">
                 <div id="article_content" class="article_content clearfix">
                                                <div class="article-copyright">
                <span class="creativecommons">
                <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">
                    </a>
            <span>
                版权声明：本文为博主原创文章，遵循<a href="http://creativecommons.org/licenses/by-sa/4.0/" target="_blank" rel="noopener"> CC 4.0 BY-SA </a>版权协议，转载请附上原文出处链接和本声明。            </span>
               <div class="article-source-link2222">
                    本文链接：<a href="https://blog.csdn.net/a649344475/article/details/81234825">https://blog.csdn.net/a649344475/article/details/81234825</a>
                </div>
            </span>
                    </div>
                                                    <!--一个博主专栏付费入口-->
             
             <!--一个博主专栏付费入口结束-->
            <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-4a3473df85.css" />
                                        <div id="content_views" class="markdown_views prism-atom-one-dark">
                    <!-- flowchart 箭头图标 勿删 -->
                    <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
                        <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
                    </svg>
                                            <h2 id="1-django-dwebsocket-模块">1 django dwebsocket 模块</h2>

<p><strong>一、创建项目（dj_websocket）：</strong> <br>
1、创建项目 <br>
python django-admin.py startproject dj_websocket <br>
2、进入项目 <br>
cd dj_websocket <br>
3、创建APP（myapp） <br>
python manage.py startapp myapp <br>
4、创建，static （静态文件夹），已经 templates（模板文件夹） <br>
mkdir static  <br>
mkdir templates</p>

<p><strong>二、配置 settings.py</strong></p>



<pre class="prettyprint"><code class=" hljs r"><span class="hljs-number">1</span>、在 INSTALLED_APPS 列表加上（myapp）：
INSTALLED_APPS = [
    <span class="hljs-keyword">...</span>,
    <span class="hljs-string">'myapp'</span>,
]

<span class="hljs-number">2</span>、在 TEMPLATES 列表的DIRS加上：
TEMPLATES = [
    {
        <span class="hljs-keyword">...</span>,
        <span class="hljs-string">'DIRS'</span>: [os.path.join(BASE_DIR, <span class="hljs-string">'templates'</span>)],
        <span class="hljs-keyword">...</span>,
    },
]

<span class="hljs-number">3</span>、在文件末尾加上：
STATICFILES_DIRS = [os.path.join(BASE_DIR,<span class="hljs-string">'static'</span>)]</code></pre>

<p><strong>三、views.py 文件编写：</strong></p>



<pre class="prettyprint"><code class=" hljs python"><span class="hljs-keyword">import</span> json
<span class="hljs-keyword">import</span> time
<span class="hljs-keyword">import</span> datetime
<span class="hljs-keyword">from</span> django.shortcuts <span class="hljs-keyword">import</span> render
<span class="hljs-keyword">from</span> dwebsocket.decorators <span class="hljs-keyword">import</span> accept_websocket,require_websocket

<span class="hljs-comment"># Create your views here.</span>



<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">index</span><span class="hljs-params">(request)</span>:</span>
    <span class="hljs-keyword">return</span> render(request, <span class="hljs-string">'index.html'</span>,{<span class="hljs-string">'init'</span>:<span class="hljs-string">'init'</span>})


<span class="hljs-decorator">@accept_websocket</span>
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">echo</span><span class="hljs-params">(request)</span>:</span>
    <span class="hljs-keyword">if</span> <span class="hljs-keyword">not</span> request.is_websocket():<span class="hljs-comment">#判断是不是websocket连接</span>
        <span class="hljs-comment">#如果是普通的http方法</span>
        <span class="hljs-keyword">try</span>:
            message = request.GET[<span class="hljs-string">'message'</span>]
            <span class="hljs-keyword">return</span> HttpResponse(message)
        <span class="hljs-keyword">except</span>:
            <span class="hljs-keyword">return</span> render(request,<span class="hljs-string">'index.html'</span>)
    <span class="hljs-keyword">else</span>:
        <span class="hljs-comment"># 如果是websocket请求</span>
        <span class="hljs-keyword">for</span> message <span class="hljs-keyword">in</span> request.websocket:
            request.websocket.send(message)<span class="hljs-comment">#发送消息到客户端</span>
            <span class="hljs-comment">#request.websocket.send(message)</span>
            <span class="hljs-comment"># 推送10次，当然你可以无限次的推送</span>
            <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(<span class="hljs-number">10</span>):
                dt = str(datetime.datetime.now())
                s={<span class="hljs-string">'test'</span>:f<span class="hljs-string">"你好 {i} {dt}"</span>}
                s=json.dumps(s).encode()
                request.websocket.send(s)
                time.sleep(<span class="hljs-number">0.1</span>) <span class="hljs-comment"># 间隔0.1秒</span>
</code></pre>

<p><strong>四、urls.py 文件编写：</strong></p>



<pre class="prettyprint"><code class=" hljs python"><span class="hljs-keyword">from</span> django.conf.urls <span class="hljs-keyword">import</span> url
<span class="hljs-keyword">from</span> django.contrib <span class="hljs-keyword">import</span> admin

<span class="hljs-keyword">from</span> myapp <span class="hljs-keyword">import</span> views

urlpatterns = [
    url(<span class="hljs-string">r'^admin/'</span>, admin.site.urls),
    url(<span class="hljs-string">r'^index/'</span>, views.index),
    url(<span class="hljs-string">r'^echo$'</span>, views.echo),
]</code></pre>

<p><strong>五、index.html 编写（templates文件夹）</strong> <br>
其中使用了 jquery-1.8.3.min.js ，需要下载到我们的 static 文件夹</p>



<pre class="prettyprint"><code class=" hljs django"><span class="xml"><span class="hljs-doctype">&lt;!DOCTYPE html&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">html</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">head</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-title">meta</span> <span class="hljs-attribute">charset</span>=<span class="hljs-value">"utf-8"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-title">title</span>&gt;</span>django-websocket<span class="hljs-tag">&lt;/<span class="hljs-title">title</span>&gt;</span>
    </span><span class="hljs-template_tag">{% <span class="hljs-keyword">load</span> staticfiles %}</span><span class="xml">
    <span class="hljs-tag">&lt;<span class="hljs-title">script</span> <span class="hljs-attribute">src</span>=<span class="hljs-value">"</span></span></span><span class="hljs-template_tag">{% <span class="hljs-keyword">static</span> 'jquery-1.8.3.min.js' %}</span><span class="xml"><span class="hljs-tag"><span class="hljs-value">"</span>&gt;</span><span class="javascript"></span><span class="hljs-tag">&lt;/<span class="hljs-title">script</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-title">script</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"text/javascript"</span>&gt;</span><span class="javascript"><span class="hljs-comment">//&lt;![CDATA[</span>
    $(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
            <span class="hljs-comment">/*创建socket连接
            var socket = new WebSocket("ws://" + window.location.host + "/echo");
            socket.onopen = function () {
                console.log('WebSocket open');//成功连接上Websocket
                 socket.send($('#message').val());//通过websocket发送数据
            };
            socket.onmessage = function (e) {
                console.log('message: ' + e.data);//打印出服务端返回过来的数据
                $('#messagecontainer').prepend('&lt;p&gt;' + e.data + '&lt;/p&gt;');
            };
            // Call onopen directly if socket is already open
            //if (socket.readyState == WebSocket.OPEN) socket.onopen();
            // 这些代码可以实现一进入页面就自动推送,不可停止
            */</span>

        $(<span class="hljs-string">'#connect_websocket'</span>).click(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
            <span class="hljs-keyword">if</span> (window.s) {
                window.s.close();
            }
            <span class="hljs-comment">/*创建socket连接*/</span>
            <span class="hljs-keyword">var</span> socket = <span class="hljs-keyword">new</span> WebSocket(<span class="hljs-string">"ws://"</span> + window.location.host + <span class="hljs-string">"/echo"</span>);
            socket.onopen = <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
                console.log(<span class="hljs-string">'WebSocket open'</span>);<span class="hljs-comment">//成功连接上Websocket</span>
            };
            socket.onmessage = <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">(e)</span> {</span>
                console.log(<span class="hljs-string">'message: '</span> + e.data);<span class="hljs-comment">//打印出服务端返回过来的数据</span>
                <span class="hljs-keyword">var</span> d= $.parseJSON(e.data);
                <span class="hljs-comment">//alert(typeof(d));</span>
                $(<span class="hljs-string">'#messagecontainer'</span>).prepend(<span class="hljs-string">'&lt;p&gt;'</span> + d.test + <span class="hljs-string">'&lt;/p&gt;'</span>);
            };
            <span class="hljs-comment">// Call onopen directly if socket is already open</span>
            <span class="hljs-keyword">if</span> (socket.readyState == WebSocket.OPEN) socket.onopen();
            window.s = socket;
        });
        $(<span class="hljs-string">'#send_message'</span>).click(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
            <span class="hljs-comment">//如果未连接到websocket</span>
            <span class="hljs-keyword">if</span> (!window.s) {
                alert(<span class="hljs-string">"websocket未连接."</span>);
            } <span class="hljs-keyword">else</span> {
                window.s.send($(<span class="hljs-string">'#message'</span>).val());<span class="hljs-comment">//通过websocket发送数据</span>
            }
        });
        $(<span class="hljs-string">'#close_websocket'</span>).click(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
            <span class="hljs-keyword">if</span> (window.s) {
                window.s.close();<span class="hljs-comment">//关闭websocket</span>
                console.log(<span class="hljs-string">'websocket已关闭'</span>);
            }
        });

    });
    <span class="hljs-comment">//]]&gt;</span></span><span class="hljs-tag">&lt;/<span class="hljs-title">script</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">head</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">body</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">br</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">input</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"text"</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"message"</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"开始..."</span>/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">button</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"button"</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"connect_websocket"</span>&gt;</span>连接 websocket<span class="hljs-tag">&lt;/<span class="hljs-title">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">button</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"button"</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"send_message"</span>&gt;</span>发送 message<span class="hljs-tag">&lt;/<span class="hljs-title">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">button</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"button"</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"close_websocket"</span>&gt;</span>关闭 websocket<span class="hljs-tag">&lt;/<span class="hljs-title">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">h1</span>&gt;</span>Received Messages<span class="hljs-tag">&lt;/<span class="hljs-title">h1</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"messagecontainer"</span>&gt;</span>

<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span>
</span><span class="hljs-variable">{{init}}</span><span class="xml">
<span class="hljs-tag">&lt;/<span class="hljs-title">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">html</span>&gt;</span>
</span></code></pre>

<p><strong>六、开始执行：</strong> <br>
这两句在这里不是必要的 <br>
python manage.py makemigrations <br>
python manage.py migrate</p>

<p>运行服务器 <br>
python manage.py runserver</p>

<p><strong>七、访问：</strong> <br>
打开浏览器输入地址：<a href="http://localhost:8000/index/" rel="nofollow">http://localhost:8000/index/</a>  <br>
我们将看到页面： <br>
<img src="https://img-blog.csdn.net/20180727115057396?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E2NDkzNDQ0NzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70" alt="img1" title=""></p>

<p><strong>点击连接，再点击发送，开始推送：</strong> <br>
<img src="https://img-blog.csdn.net/20180727120043196?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E2NDkzNDQ0NzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70" alt="这里写图片描述" title=""></p>



<h2 id="2-websockets-模块">2 websockets 模块</h2>

<p><strong>1 server.py </strong></p>



<pre class="prettyprint"><code class=" hljs python"><span class="hljs-keyword">import</span> websockets
<span class="hljs-keyword">import</span> asyncio
<span class="hljs-keyword">import</span> time
<span class="hljs-keyword">import</span> datetime
<span class="hljs-keyword">import</span> json

async <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">hello</span><span class="hljs-params">(websocket,path)</span>:</span>
  name = await websocket.recv()
  print(f<span class="hljs-string">'A new client: {name}'</span>)
  <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(<span class="hljs-number">10</span>):
    dt = str(datetime.datetime.now())
    s = json.dumps({<span class="hljs-string">'test'</span>:f<span class="hljs-string">"{name} {i} {dt}"</span>})
    await websocket.send(s)
    print(f<span class="hljs-string">'send {name} {i} {dt}'</span>)
    time.sleep(<span class="hljs-number">0.1</span>)


start_server = websockets.serve(hello,<span class="hljs-string">'localhost'</span>,<span class="hljs-number">8000</span>)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
</code></pre>

<p><em>run server.py:</em> <br>
python server.py</p>

<p><strong>2 client.py </strong></p>



<pre class="prettyprint"><code class=" hljs python"><span class="hljs-keyword">import</span> websockets
<span class="hljs-keyword">import</span> asyncio


async <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">hello</span><span class="hljs-params">()</span>:</span>
  async <span class="hljs-keyword">with</span> websockets.connect(<span class="hljs-string">'ws://localhost:8000'</span>) <span class="hljs-keyword">as</span> websocket:
    name = input(<span class="hljs-string">"what's your name?"</span>)
    await websocket.send(name)
    print(f<span class="hljs-string">"send server:{name}"</span>)
    <span class="hljs-keyword">while</span> <span class="hljs-number">1</span>:
      greeting = await websocket.recv()
      print(f<span class="hljs-string">'receive from server:{greeting}'</span>)

asyncio.get_event_loop().run_until_complete(hello())
</code></pre>

<p><em>run client.py</em> <br>
python client.py <br>
<em>input：hello</em> <br>
<em>output to server</em></p>



<pre class="prettyprint"><code class=" hljs css"><span class="hljs-tag">A</span> <span class="hljs-tag">new</span> <span class="hljs-tag">client</span>: <span class="hljs-tag">hello</span>
<span class="hljs-tag">send</span> <span class="hljs-tag">hello</span> 0 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:24</span><span class="hljs-pseudo">:11</span><span class="hljs-class">.410886</span>
<span class="hljs-tag">send</span> <span class="hljs-tag">hello</span> 1 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:24</span><span class="hljs-pseudo">:11</span><span class="hljs-class">.511604</span>
<span class="hljs-tag">send</span> <span class="hljs-tag">hello</span> 2 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:24</span><span class="hljs-pseudo">:11</span><span class="hljs-class">.612339</span>
<span class="hljs-tag">send</span> <span class="hljs-tag">hello</span> 3 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:24</span><span class="hljs-pseudo">:11</span><span class="hljs-class">.713062</span>
<span class="hljs-tag">send</span> <span class="hljs-tag">hello</span> 4 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:24</span><span class="hljs-pseudo">:11</span><span class="hljs-class">.813771</span>
<span class="hljs-tag">send</span> <span class="hljs-tag">hello</span> 5 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:24</span><span class="hljs-pseudo">:11</span><span class="hljs-class">.914492</span>
<span class="hljs-tag">send</span> <span class="hljs-tag">hello</span> 6 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:24</span><span class="hljs-pseudo">:12</span><span class="hljs-class">.015099</span>
<span class="hljs-tag">send</span> <span class="hljs-tag">hello</span> 7 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:24</span><span class="hljs-pseudo">:12</span><span class="hljs-class">.115936</span>
<span class="hljs-tag">send</span> <span class="hljs-tag">hello</span> 8 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:24</span><span class="hljs-pseudo">:12</span><span class="hljs-class">.216658</span>
<span class="hljs-tag">send</span> <span class="hljs-tag">hello</span> 9 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:24</span><span class="hljs-pseudo">:12</span><span class="hljs-class">.317399</span></code></pre>

<p><em>output to client.py</em></p>



<pre class="prettyprint"><code class=" hljs vbscript">what<span class="hljs-comment">'s your name?hello</span>
send <span class="hljs-built_in">server</span>:hello
receive from <span class="hljs-built_in">server</span>:{<span class="hljs-string">"test"</span>: <span class="hljs-string">"hello 0 2018-07-28 20:24:11.410886"</span>}
receive from <span class="hljs-built_in">server</span>:{<span class="hljs-string">"test"</span>: <span class="hljs-string">"hello 1 2018-07-28 20:24:11.511604"</span>}
receive from <span class="hljs-built_in">server</span>:{<span class="hljs-string">"test"</span>: <span class="hljs-string">"hello 2 2018-07-28 20:24:11.612339"</span>}
receive from <span class="hljs-built_in">server</span>:{<span class="hljs-string">"test"</span>: <span class="hljs-string">"hello 3 2018-07-28 20:24:11.713062"</span>}
receive from <span class="hljs-built_in">server</span>:{<span class="hljs-string">"test"</span>: <span class="hljs-string">"hello 4 2018-07-28 20:24:11.813771"</span>}
receive from <span class="hljs-built_in">server</span>:{<span class="hljs-string">"test"</span>: <span class="hljs-string">"hello 5 2018-07-28 20:24:11.914492"</span>}
receive from <span class="hljs-built_in">server</span>:{<span class="hljs-string">"test"</span>: <span class="hljs-string">"hello 6 2018-07-28 20:24:12.015099"</span>}
receive from <span class="hljs-built_in">server</span>:{<span class="hljs-string">"test"</span>: <span class="hljs-string">"hello 7 2018-07-28 20:24:12.115936"</span>}
receive from <span class="hljs-built_in">server</span>:{<span class="hljs-string">"test"</span>: <span class="hljs-string">"hello 8 2018-07-28 20:24:12.216658"</span>}
receive from <span class="hljs-built_in">server</span>:{<span class="hljs-string">"test"</span>: <span class="hljs-string">"hello 9 2018-07-28 20:24:12.317399"</span>}
</code></pre>

<p><strong>3 client.html</strong></p>



<pre class="prettyprint"><code class=" hljs xml"><span class="hljs-tag">&lt;<span class="hljs-title">html</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">head</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-title">meta</span> <span class="hljs-attribute">charset</span>=<span class="hljs-value">"utf-8"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-title">title</span>&gt;</span>django-websocket<span class="hljs-tag">&lt;/<span class="hljs-title">title</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-title">script</span> <span class="hljs-attribute">src</span>=<span class="hljs-value">"jquery-1.8.3.min.js"</span>&gt;</span><span class="javascript"></span><span class="hljs-tag">&lt;/<span class="hljs-title">script</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">script</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"text/javascript"</span>&gt;</span><span class="javascript">
    $(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
        $(<span class="hljs-string">'#connect_websocket'</span>).click(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
            <span class="hljs-keyword">if</span> (window.s) {
                window.s.close();
            }
            <span class="hljs-comment">/*创建socket连接*/</span>
            <span class="hljs-keyword">var</span> socket = <span class="hljs-keyword">new</span> WebSocket(<span class="hljs-string">"ws://localhost:8000"</span>);
            socket.onopen = <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
                console.log(<span class="hljs-string">'WebSocket open'</span>);<span class="hljs-comment">//成功连接上Websocket</span>
            };
            socket.onmessage = <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">(e)</span> {</span>
                console.log(<span class="hljs-string">'message: '</span> + e.data);<span class="hljs-comment">//打印出服务端返回过来的数据</span>
                <span class="hljs-keyword">var</span> d= $.parseJSON(e.data);
                $(<span class="hljs-string">'#messagecontainer'</span>).prepend(<span class="hljs-string">'&lt;p&gt;'</span> + d.test + <span class="hljs-string">'&lt;/p&gt;'</span>);
            };
            <span class="hljs-keyword">if</span> (socket.readyState == WebSocket.OPEN) socket.onopen();
            window.s = socket;
        });
        $(<span class="hljs-string">'#send_message'</span>).click(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
            <span class="hljs-comment">//如果未连接到websocket</span>
            <span class="hljs-keyword">if</span> (!window.s) {
                alert(<span class="hljs-string">"websocket未连接."</span>);
            } <span class="hljs-keyword">else</span> {
                window.s.send($(<span class="hljs-string">'#message'</span>).val());<span class="hljs-comment">//通过websocket发送数据</span>
            }
        });
        $(<span class="hljs-string">'#close_websocket'</span>).click(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
            <span class="hljs-keyword">if</span> (window.s) {
                window.s.close();<span class="hljs-comment">//关闭websocket</span>
                console.log(<span class="hljs-string">'websocket已关闭'</span>);
            }
        });

    });
</span><span class="hljs-tag">&lt;/<span class="hljs-title">script</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">head</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">body</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">br</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">input</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"text"</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"message"</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"开始..."</span>/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">button</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"button"</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"connect_websocket"</span>&gt;</span>连接 websocket<span class="hljs-tag">&lt;/<span class="hljs-title">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">button</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"button"</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"send_message"</span>&gt;</span>发送 message<span class="hljs-tag">&lt;/<span class="hljs-title">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">button</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"button"</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"close_websocket"</span>&gt;</span>关闭 websocket<span class="hljs-tag">&lt;/<span class="hljs-title">button</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"messagecontainer"</span>&gt;</span>

<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">html</span>&gt;</span></code></pre>

<p>run client.html <br>
打开浏览器输入地址：file:///home/huang/Practise/demo1/client.html</p>

<p><strong>输入 ：你好，点击连接，再点击发送，开始推送：</strong> <br>
<em>output to server</em></p>



<pre class="prettyprint"><code class=" hljs css"><span class="hljs-tag">A</span> <span class="hljs-tag">new</span> <span class="hljs-tag">client</span>: 你好
<span class="hljs-tag">send</span> 你好 0 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:34</span><span class="hljs-class">.384413</span>
<span class="hljs-tag">send</span> 你好 1 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:34</span><span class="hljs-class">.485158</span>
<span class="hljs-tag">send</span> 你好 2 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:34</span><span class="hljs-class">.585793</span>
<span class="hljs-tag">send</span> 你好 3 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:34</span><span class="hljs-class">.686401</span>
<span class="hljs-tag">send</span> 你好 4 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:34</span><span class="hljs-class">.787105</span>
<span class="hljs-tag">send</span> 你好 5 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:34</span><span class="hljs-class">.887769</span>
<span class="hljs-tag">send</span> 你好 6 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:34</span><span class="hljs-class">.988483</span>
<span class="hljs-tag">send</span> 你好 7 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:35</span><span class="hljs-class">.089176</span>
<span class="hljs-tag">send</span> 你好 8 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:35</span><span class="hljs-class">.189867</span>
<span class="hljs-tag">send</span> 你好 9 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:35</span><span class="hljs-class">.290481</span>
</code></pre>

<p><em>output to client.html</em></p>



<pre class="prettyprint"><code class=" hljs css">你好 9 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:35</span><span class="hljs-class">.290481</span>

你好 8 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:35</span><span class="hljs-class">.189867</span>

你好 7 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:35</span><span class="hljs-class">.089176</span>

你好 6 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:34</span><span class="hljs-class">.988483</span>

你好 5 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:34</span><span class="hljs-class">.887769</span>

你好 4 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:34</span><span class="hljs-class">.787105</span>

你好 3 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:34</span><span class="hljs-class">.686401</span>

你好 2 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:34</span><span class="hljs-class">.585793</span>

你好 1 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:34</span><span class="hljs-class">.485158</span>

你好 0 2018<span class="hljs-tag">-07-28</span> 20<span class="hljs-pseudo">:38</span><span class="hljs-pseudo">:34</span><span class="hljs-class">.384413</span>
</code></pre>



<h2 id="3-websockets-模块模拟动态推送k线图数据回测">3 websockets 模块模拟动态推送K线图数据回测</h2>

<p><strong>1、web_server.py</strong></p>



<pre class="prettyprint"><code class=" hljs python"><span class="hljs-keyword">import</span> json
<span class="hljs-keyword">import</span> time
<span class="hljs-keyword">import</span> random
<span class="hljs-keyword">import</span> datetime
<span class="hljs-keyword">import</span> asyncio
<span class="hljs-keyword">import</span> websockets

async <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">echo2</span><span class="hljs-params">(websocket, path)</span>:</span>
    message = await websocket.recv()
    await websocket.send(message)

<span class="hljs-decorator">@asyncio.coroutine</span>
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">echo</span><span class="hljs-params">(websocket, path)</span>:</span>
    message = <span class="hljs-keyword">yield</span> <span class="hljs-keyword">from</span> websocket.recv()
    print(<span class="hljs-string">'recv'</span>, message)
    dt = datetime.datetime.now()
    cc = <span class="hljs-number">1000</span>
    <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(<span class="hljs-number">1000</span>):
        dt2 = str(dt + datetime.timedelta(minutes=i))[<span class="hljs-number">11</span>:<span class="hljs-number">19</span>]
        y = [cc + random.randint(-<span class="hljs-number">80</span>, <span class="hljs-number">100</span>) <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> range(<span class="hljs-number">4</span>)]
        v = []
        mi = min(y)
        ma = max(y)
        y.remove(mi)
        y.remove(ma)
        y = [y[<span class="hljs-number">0</span>], y[<span class="hljs-number">1</span>], mi, ma]
        cc = y[<span class="hljs-number">2</span>] <span class="hljs-keyword">if</span> y[<span class="hljs-number">2</span>] &gt; <span class="hljs-number">900</span> <span class="hljs-keyword">else</span> <span class="hljs-number">1000</span>
        s = {<span class="hljs-string">'datetime'</span>: dt2, <span class="hljs-string">'topic'</span>: <span class="hljs-string">'bar'</span>,<span class="hljs-string">'open'</span>:y[<span class="hljs-number">0</span>],<span class="hljs-string">'close'</span>:y[<span class="hljs-number">1</span>],<span class="hljs-string">'high'</span>:y[<span class="hljs-number">2</span>],<span class="hljs-string">'low'</span>:y[<span class="hljs-number">3</span>]}
        s = json.dumps(s)<span class="hljs-comment">#.encode()</span>
        <span class="hljs-comment">#print(s)</span>
        <span class="hljs-comment"># request.websocket.send(s)</span>
        <span class="hljs-keyword">yield</span> <span class="hljs-keyword">from</span> websocket.send(s)

        v = random.randint(<span class="hljs-number">0</span>,<span class="hljs-number">5</span>)
        <span class="hljs-keyword">if</span> v <span class="hljs-keyword">in</span> (<span class="hljs-number">3</span>,<span class="hljs-number">4</span>):
            v = <span class="hljs-string">'SELL'</span> <span class="hljs-keyword">if</span> v==<span class="hljs-number">4</span> <span class="hljs-keyword">else</span> <span class="hljs-string">'BULL'</span> <span class="hljs-comment"># 卖出、买入</span>
            s = {<span class="hljs-string">'topic'</span>:<span class="hljs-string">'trade'</span>,<span class="hljs-string">'trading_dt'</span>:dt2,<span class="hljs-string">'price'</span>:y[<span class="hljs-number">1</span>],<span class="hljs-string">'side'</span>:v}
            print(s)
        s = json.dumps(s)<span class="hljs-comment">#.encode()</span>

        <span class="hljs-comment"># request.websocket.send(s)</span>
        <span class="hljs-keyword">yield</span> <span class="hljs-keyword">from</span> websocket.send(s)

        time.sleep(<span class="hljs-number">0.5</span>)  <span class="hljs-comment"># 间隔0.5秒</span>


start_server = websockets.serve(echo, <span class="hljs-string">'localhost'</span>, <span class="hljs-number">8000</span>)

asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()</code></pre>

<p><strong>2 web_client.html</strong></p>



<pre class="prettyprint"><code class=" hljs xml"><span class="hljs-doctype">&lt;!DOCTYPE html&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">html</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">head</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-title">meta</span> <span class="hljs-attribute">charset</span>=<span class="hljs-value">"utf-8"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-title">title</span>&gt;</span>django-websocket<span class="hljs-tag">&lt;/<span class="hljs-title">title</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-title">script</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"text/javascript"</span> <span class="hljs-attribute">src</span>=<span class="hljs-value">"jquery-1.8.3.min.js"</span>&gt;</span><span class="javascript"></span><span class="hljs-tag">&lt;/<span class="hljs-title">script</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-title">script</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"text/javascript"</span> <span class="hljs-attribute">src</span>=<span class="hljs-value">"echarts.min.js"</span>&gt;</span><span class="javascript"></span><span class="hljs-tag">&lt;/<span class="hljs-title">script</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">head</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">body</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">br</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">input</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"text"</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"message"</span> <span class="hljs-attribute">value</span>=<span class="hljs-value">"200"</span>/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">button</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"button"</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"connect_websocket"</span>&gt;</span>连接<span class="hljs-tag">&lt;/<span class="hljs-title">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">button</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"button"</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"send_message"</span>&gt;</span>开始画图<span class="hljs-tag">&lt;/<span class="hljs-title">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">button</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"button"</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"close_ht"</span>&gt;</span>暂停画图<span class="hljs-tag">&lt;/<span class="hljs-title">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">button</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"button"</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"close_websocket"</span>&gt;</span>关闭接收数据<span class="hljs-tag">&lt;/<span class="hljs-title">button</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"messagecontainer"</span>&gt;</span>

<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">id</span>=<span class="hljs-value">"main"</span> <span class="hljs-attribute">style</span>=<span class="hljs-value">"width: auto;height: 800px;"</span> <span class="hljs-attribute">align</span>=<span class="hljs-value">"center"</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-title">script</span> <span class="hljs-attribute">type</span>=<span class="hljs-value">"text/javascript"</span>&gt;</span><span class="javascript">

<span class="hljs-keyword">var</span> myChart = echarts.init(document.getElementById(<span class="hljs-string">'main'</span>));
<span class="hljs-keyword">var</span> bs = <span class="hljs-keyword">new</span> <span class="hljs-built_in">Array</span>();
<span class="hljs-keyword">var</span> xzs = <span class="hljs-keyword">new</span> <span class="hljs-built_in">Array</span>();

option = {
    title : {
        text: <span class="hljs-string">'回测'</span>,
        subtext: <span class="hljs-string">'K线'</span>
    },
    tooltip : {
        trigger: <span class="hljs-string">'axis'</span>
    },
    legend: {
        data:[<span class="hljs-string">'回测'</span>,<span class="hljs-string">'卖出'</span>,<span class="hljs-string">'买入'</span>]
    },
    toolbox: {
        show : <span class="hljs-literal">true</span>,
        feature : {
            mark : {show: <span class="hljs-literal">true</span>},
            dataView : {show: <span class="hljs-literal">true</span>, readOnly: <span class="hljs-literal">false</span>},
            restore : {show: <span class="hljs-literal">true</span>},
            saveAsImage : {show: <span class="hljs-literal">true</span>}
        }
    },
    dataZoom : {
        show : <span class="hljs-literal">true</span>,
        realtime: <span class="hljs-literal">true</span>,
        start : <span class="hljs-number">50</span>,
        end : <span class="hljs-number">100</span>
    },
    xAxis : [
        {
            type : <span class="hljs-string">'category'</span>,
            boundaryGap : <span class="hljs-literal">true</span>,
            data : [

            ]
        }
    ],
    yAxis : [
        {
            type : <span class="hljs-string">'value'</span>,
            scale:<span class="hljs-literal">true</span>,
            splitNumber: <span class="hljs-number">5</span>,
            boundaryGap: [<span class="hljs-number">0.05</span>, <span class="hljs-number">0.05</span>]
        }
    ],
    series : [
        {
            name:<span class="hljs-string">'回测'</span>,
            type:<span class="hljs-string">'k'</span>,
            data:[ <span class="hljs-comment">// 开盘，收盘，最低，最高</span>
            ]
        },{
            name:<span class="hljs-string">'卖出'</span>,
            type:<span class="hljs-string">'scatter'</span>,
            symbol: <span class="hljs-string">'arrow'</span>,<span class="hljs-comment">//'star3',</span>
            symbolSize: <span class="hljs-number">12</span>,
            smooth:<span class="hljs-literal">true</span>,
            symbolRotate:<span class="hljs-number">180</span>,

            itemStyle:{
                <span class="hljs-comment">//symbolRotate:-90,</span>
                normal: { color:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(p)</span>{</span>
                    <span class="hljs-keyword">return</span> bs[p.name];
                 }
                }
            },

            data: []
        },{
            name:<span class="hljs-string">'买入'</span>,
            type:<span class="hljs-string">'scatter'</span>,
            symbol: <span class="hljs-string">'arrow'</span>,<span class="hljs-comment">//'star3',</span>
            symbolSize: <span class="hljs-number">12</span>,
            smooth:<span class="hljs-literal">true</span>,
            symbolRotate:<span class="hljs-number">0</span>,

            itemStyle:{
                <span class="hljs-comment">//symbolRotate:-90,</span>
                normal: { color:<span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(p)</span>{</span>
                    <span class="hljs-keyword">return</span> bs[p.name];
                 }
                }
            },

            data: []
        }
    ]
};

stringToDate = <span class="hljs-function"><span class="hljs-keyword">function</span><span class="hljs-params">(dateStr,separator)</span>{</span>
     <span class="hljs-keyword">if</span>(!separator){
            separator=<span class="hljs-string">"-"</span>;
     }
     <span class="hljs-keyword">var</span> dateArr = dateStr.split(separator);
     <span class="hljs-keyword">var</span> year = <span class="hljs-built_in">parseInt</span>(dateArr[<span class="hljs-number">0</span>]);
     <span class="hljs-keyword">var</span> month;
     <span class="hljs-comment">//处理月份为04这样的情况</span>
     <span class="hljs-keyword">if</span>(dateArr[<span class="hljs-number">1</span>].indexOf(<span class="hljs-string">"0"</span>) == <span class="hljs-number">0</span>){
         month = <span class="hljs-built_in">parseInt</span>(dateArr[<span class="hljs-number">1</span>].substring(<span class="hljs-number">1</span>));
     }<span class="hljs-keyword">else</span>{
          month = <span class="hljs-built_in">parseInt</span>(dateArr[<span class="hljs-number">1</span>]);
     }
     <span class="hljs-keyword">var</span> day = <span class="hljs-built_in">parseInt</span>(dateArr[<span class="hljs-number">2</span>]);
     <span class="hljs-keyword">var</span> date = <span class="hljs-keyword">new</span> <span class="hljs-built_in">Date</span>(year,month -<span class="hljs-number">1</span>,day);
     <span class="hljs-keyword">return</span> date;
 }

<span class="hljs-keyword">var</span> k_x = <span class="hljs-keyword">new</span> <span class="hljs-built_in">Array</span>();
<span class="hljs-keyword">var</span> k_y = <span class="hljs-keyword">new</span> <span class="hljs-built_in">Array</span>();
<span class="hljs-keyword">var</span> y_x = <span class="hljs-keyword">new</span> <span class="hljs-built_in">Array</span>();
<span class="hljs-keyword">var</span> y_y = <span class="hljs-keyword">new</span> <span class="hljs-built_in">Array</span>();
<span class="hljs-keyword">var</span> y_y2 = <span class="hljs-keyword">new</span> <span class="hljs-built_in">Array</span>();
<span class="hljs-keyword">var</span> is_huatu = <span class="hljs-literal">true</span>;
<span class="hljs-keyword">var</span> size = $(<span class="hljs-string">'#message'</span>).val()-<span class="hljs-number">0</span>;

<span class="hljs-comment">//myChart.setOption(option);</span>

<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">timeTicket</span><span class="hljs-params">(x,y,type,side)</span>{</span>
    <span class="hljs-comment">// 动态数据接口 addData</span>
    <span class="hljs-comment">// lastIndex += 1;</span>
    <span class="hljs-comment">// var len2 = option.series[0].data.length;</span>
    <span class="hljs-comment">// var d = option.xAxis[0].data[len2-1];</span>
    <span class="hljs-comment">// d = stringToDate(d,'/');</span>
    <span class="hljs-comment">// d.setDate(d.getDate()+1);</span>
    <span class="hljs-comment">// d = d.getFullYear()+'/'+(d.getMonth()+1)+'/'+d.getDate();</span>

    <span class="hljs-keyword">if</span>(type==<span class="hljs-string">'k'</span>){
        <span class="hljs-keyword">var</span> ind = k_x.indexOf(x);
        <span class="hljs-keyword">if</span>(ind&lt;<span class="hljs-number">0</span>){
                k_x.push(x);
                k_y.push(y);
                y_y.push(<span class="hljs-string">''</span>);
                y_y2.push(<span class="hljs-string">''</span>);
            }<span class="hljs-keyword">else</span>{
                k_y[ind] = y;
            }

            <span class="hljs-keyword">if</span>(is_huatu){
                option.xAxis[<span class="hljs-number">0</span>].data=k_x.slice(-size);
                option.series[<span class="hljs-number">0</span>].data=k_y.slice(-size);
                option.series[<span class="hljs-number">1</span>].data=y_y.slice(-size);
                option.series[<span class="hljs-number">2</span>].data=y_y2.slice(-size);
                <span class="hljs-comment">//option.series[1].symbolRotate=y_y.slice(-size);</span>
                myChart.setOption(option);
            }
    }<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(type==<span class="hljs-string">'y'</span>){
            <span class="hljs-keyword">var</span> ind = k_x.indexOf(x);

            <span class="hljs-keyword">if</span>(ind&lt;<span class="hljs-number">0</span>){
                k_x.push(x);
                k_y.push(k_y[k_y.length-<span class="hljs-number">1</span>]);
                <span class="hljs-keyword">if</span>(side==<span class="hljs-string">'SELL'</span>){
                    y_y.push(y);
                    y_y2.push(<span class="hljs-string">''</span>)
                }<span class="hljs-keyword">else</span>{
                    y_y.push(<span class="hljs-string">''</span>);
                    y_y2.push(y)
                }
            }<span class="hljs-keyword">else</span>{
                <span class="hljs-comment">//y_y[ind] = y;</span>
                <span class="hljs-keyword">if</span>(side==<span class="hljs-string">'SELL'</span>){
                    y_y[ind] = y;
                }<span class="hljs-keyword">else</span>{
                   y_y2[ind] = y;
                }
            }
            <span class="hljs-keyword">if</span>(is_huatu){
                option.xAxis[<span class="hljs-number">0</span>].data=k_x.slice(-size);
                option.series[<span class="hljs-number">0</span>].data=k_y.slice(-size);
                option.series[<span class="hljs-number">1</span>].data=y_y.slice(-size);
                option.series[<span class="hljs-number">2</span>].data=y_y2.slice(-size);
               myChart.setOption(option);
            }
    }<span class="hljs-keyword">else</span>{
        option.xAxis[<span class="hljs-number">0</span>].data=k_x.slice(-size);
        option.series[<span class="hljs-number">0</span>].data=k_y.slice(-size);
        option.series[<span class="hljs-number">1</span>].data=y_y.slice(-size);
        option.series[<span class="hljs-number">2</span>].data=y_y2.slice(-size);
        myChart.setOption(option);
    }
        <span class="hljs-comment">/*myChart.addData([
            [
                0,        // 系列索引
                option.series[0].data[lastIndex%len], // 新增数据
                false,     // 新增数据是否从队列头部插入
                false,     // 是否增加队列长度，false则自定删除原有数据，队头插入删队尾，队尾插入删队头
                d //option.xAxis[0].data[lastIndex%len]
            ]
        ]);*/</span>
}

$(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
        <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">manages</span><span class="hljs-params">(info)</span>{</span>
            <span class="hljs-keyword">if</span> (window.s) {
                window.s.close();
            }
            <span class="hljs-comment">/*创建socket连接*/</span>
            <span class="hljs-keyword">var</span> url = <span class="hljs-string">"ws://localhost:8000"</span>; <span class="hljs-comment">// 连接地址</span>
            <span class="hljs-keyword">var</span> socket = <span class="hljs-keyword">new</span> WebSocket(url); <span class="hljs-comment">//window.location.host</span>
            socket.onopen = <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
                console.log(<span class="hljs-string">'WebSocket open'</span>);<span class="hljs-comment">//成功连接上Websocket</span>
                <span class="hljs-keyword">if</span>(info) alert(<span class="hljs-string">'WebSocket open'</span>);
            };
            <span class="hljs-keyword">var</span> x=<span class="hljs-literal">null</span>,y=<span class="hljs-literal">null</span>;
            socket.onmessage = <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">(e)</span> {</span>
                console.log(<span class="hljs-string">'message: '</span> + e.data);<span class="hljs-comment">//打印出服务端返回过来的数据</span>
                <span class="hljs-keyword">var</span> d= $.parseJSON(e.data);
                <span class="hljs-keyword">if</span>(d.topic==<span class="hljs-string">'bar'</span>){
                    x = d.datetime;
                    y=[d.open,d.close,d.high,d.low]
                    timeTicket(x,y,<span class="hljs-string">'k'</span>,<span class="hljs-string">''</span>);
                }<span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span>(d.topic==<span class="hljs-string">'trade'</span>){
                    x = d.trading_dt;
                    y = d.price;
                    <span class="hljs-comment">//bs = d.bs;</span>
                    <span class="hljs-keyword">if</span>(d.side==<span class="hljs-string">'SELL'</span>){
                        bs[x]=<span class="hljs-string">'green'</span>;
                    }<span class="hljs-keyword">else</span>{
                        bs[x]=<span class="hljs-string">'red'</span>;
                    }
                    timeTicket(x,y,<span class="hljs-string">'y'</span>,d.side);
                }
            };
            <span class="hljs-comment">// Call onopen directly if socket is already open</span>
            <span class="hljs-keyword">if</span> (socket.readyState == WebSocket.OPEN) socket.onopen();
            window.s = socket;
        }
        manages(<span class="hljs-literal">false</span>);
        $(<span class="hljs-string">'#connect_websocket'</span>).click(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
            manages(<span class="hljs-literal">true</span>);
        });
        $(<span class="hljs-string">'#send_message'</span>).click(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
            <span class="hljs-comment">//如果未连接到websocket</span>
            is_huatu = <span class="hljs-literal">true</span>;
            <span class="hljs-keyword">if</span> (!window.s) {
                alert(<span class="hljs-string">"websocket未连接."</span>);
            } <span class="hljs-keyword">else</span> {
                window.s.send($(<span class="hljs-string">'#message'</span>).val());<span class="hljs-comment">//通过websocket发送数据</span>
            }
        });
        $(<span class="hljs-string">'#close_websocket'</span>).click(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
            <span class="hljs-keyword">if</span> (window.s) {
                window.s.close();<span class="hljs-comment">//关闭websocket</span>
                console.log(<span class="hljs-string">'websocket已关闭'</span>);
            }
        });
        $(<span class="hljs-string">'#close_ht'</span>).click(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">()</span> {</span>
            is_huatu = <span class="hljs-literal">false</span>;
            size = $(<span class="hljs-string">'#message'</span>).val()-<span class="hljs-number">0</span>;
            timeTicket(<span class="hljs-string">''</span>,<span class="hljs-string">''</span>,<span class="hljs-string">''</span>,<span class="hljs-string">''</span>);
        });
    });


<span class="hljs-comment">//var t=setInterval("timeTicket()",100);</span>
</span><span class="hljs-tag">&lt;/<span class="hljs-title">script</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">html</span>&gt;</span></code></pre>

<p><strong>3 执行</strong> <br>
1、python web_server.py <br>
2、浏览器打开：web_client.html，点击开始画图</p>

<p>服务端输出结果：</p>

<pre class="prettyprint"><code class=" hljs perl">D:\tools&gt;python server_web.py
<span class="hljs-keyword">recv</span> <span class="hljs-number">200</span>
{<span class="hljs-string">'topic'</span>: <span class="hljs-string">'trade'</span>, <span class="hljs-string">'trading_dt'</span>: <span class="hljs-string">'18:58:22'</span>, <span class="hljs-string">'price'</span>: <span class="hljs-number">882</span>, <span class="hljs-string">'side'</span>: <span class="hljs-string">'BULL'</span>}
{<span class="hljs-string">'topic'</span>: <span class="hljs-string">'trade'</span>, <span class="hljs-string">'trading_dt'</span>: <span class="hljs-string">'18:59:22'</span>, <span class="hljs-string">'price'</span>: <span class="hljs-number">1032</span>, <span class="hljs-string">'side'</span>: <span class="hljs-string">'BULL'</span>}
{<span class="hljs-string">'topic'</span>: <span class="hljs-string">'trade'</span>, <span class="hljs-string">'trading_dt'</span>: <span class="hljs-string">'19:01:22'</span>, <span class="hljs-string">'price'</span>: <span class="hljs-number">856</span>, <span class="hljs-string">'side'</span>: <span class="hljs-string">'BULL'</span>}
。。。。。。</code></pre>

<p>浏览器输出结果： <br>
<img src="https://img-blog.csdn.net/2018073019070643?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E2NDkzNDQ0NzU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70" alt="这里写图片描述" title=""></p>                                    </div>
                <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-b6c3c6d139.css" rel="stylesheet">
                    </div>
    </article>
    <div class="postTime"> 
        <div class="article-bar-bottom">
            <span class="time">
                文章最后发布于: 2018-07-27 11:52:59            </span>
        </div>
    </div>
</div>

            <div class="hide-article-box hide-article-pos text-center">
            <a class="btn-readmore" data-report-view='{"mod":"popu_376","dest":"https://blog.csdn.net/a649344475/article/details/81234825","strategy":"readmore"}' data-report-click='{"mod":"popu_376","dest":"https://blog.csdn.net/a649344475/article/details/81234825","strategy":"readmore"}'>
                展开阅读全文
                <svg class="icon chevrondown" aria-hidden="true">
                    <use xlink:href="#csdnc-chevrondown"></use>
                </svg>
            </a>
        </div>
                <!--打赏开始-->
                            <div class="reward-user-box">
                    <span class="reward-word" style="color:#B4B4B4 !important">有 <span class="num">0</span> 个人打赏</span>
                                        <a target="_blank" href="https://im.csdn.net/im/main.html?userName=a649344475" data-report-click='{"mod":"popu_810","dest":"私信"}'  data-report-view='{"mod":"popu_810","dest":"私信"}' id="profile-content-alink" >
                         <div class="reward-fexd" id="">
                    <!-- iconcsdnc-bookmark -->
                    <svg class="reward-icon" aria-hidden="true">
					<use xlink:href="#csdnc-envelope"></use>
				    </svg>
                    <div>私信求帮助</div>
                    </div>
                    </a>
                   
                </div>
                        <!--打赏结束-->
            <div id="dmp_ad_58"><div id="kp_box_58" data-pid="58"><div style="width:100%;background:#fff;">
<script type="text/javascript" src="//rabc1.iteye.com/production/resource/web/6xwm4l.js?lg=ydmpioh"></script>
</div><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=58&a=386&c=0&k=&d=1&t=3&u=a488d72720ff41ae804e91a685b94767"></div></div>            
            <a id="commentBox"></a>
<div class="comment-box">
	<div class="comment-edit-box d-flex">
		<a id="commentsedit"></a>
		<div class="user-img">
			<a href="javascript:void(0);" target="_blank" rel="noopener">
				<img class="show_loginbox" src="//g.csdnimg.cn/static/user-img/anonymous-User-img.png">
			</a>
		</div>
		<form id="commentform">
			<input type="hidden" id="comment_replyId">
			<textarea class="comment-content" name="comment_content" id="comment_content" placeholder="想对作者说点什么"></textarea>
			<div class="opt-box"> <!-- d-flex -->
				<div id="ubbtools" class="add_code">
					<a href="#insertcode" code="code" target="_self"><i class="icon iconfont icon-daima"></i></a>
				</div>
				<input type="hidden" id="comment_replyId" name="comment_replyId">
				<input type="hidden" id="article_id" name="article_id" value="81234825">
				<input type="hidden" id="comment_userId" name="comment_userId" value="">
				<input type="hidden" id="commentId" name="commentId" value="">
				<div style="display: none;" class="csdn-tracking-statistics tracking-click" data-report-click='{"mod":"popu_384","dest":""}'><a href="#" target="_blank" class="comment_area_btn" rel="noopener">发表评论</a></div>
				<div class="dropdown" id="myDrap">
					<a class="dropdown-face d-flex align-items-center" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
					<div class="txt-selected text-truncate">添加代码片</div>
					<svg class="icon d-block" aria-hidden="true">
						<use xlink:href="#csdnc-triangledown"></use>
					</svg>
					</a>
					<ul class="dropdown-menu" id="commentCode" aria-labelledby="drop4">
						<li><a data-code="html">HTML/XML</a></li>
						<li><a data-code="objc">objective-c</a></li>
						<li><a data-code="ruby">Ruby</a></li>
						<li><a data-code="php">PHP</a></li>
						<li><a data-code="csharp">C</a></li>
						<li><a data-code="cpp">C++</a></li>
						<li><a data-code="javascript">JavaScript</a></li>
						<li><a data-code="python">Python</a></li>
						<li><a data-code="java">Java</a></li>
						<li><a data-code="css">CSS</a></li>
						<li><a data-code="sql">SQL</a></li>
						<li><a data-code="plain">其它</a></li>
					</ul>
				</div>  
				<div class="right-box">
                                        <span id="tip_comment" class="tip">还能输入<em>1000</em>个字符</span>
					<input type="button" class="btn btn-sm btn-cancel d-none" value="取消回复">
					<input type="submit" class="btn btn-sm btn-red btn-comment" value="发表评论">
				</div>
			</div>
		</form>
	</div>

	<div class="comment-list-container">
		<a id="comments"></a>
		<div class="comment-list-box">
		</div>
		<div id="commentPage" class="pagination-box d-none"></div>
		<div class="opt-box text-center">
			<div class="btn btn-sm btn-link-blue" id="btnMoreComment"></div>
		</div>
	</div>
</div>
            <!--付费专栏入口开始-->
                            <div class="blog-column-pay">
                    <div class="column-pay-left">
                        <a href="https://blog.csdn.net/xufive/article/category/9506563?utm_source=payColumnDetails" target="_blank">
                        <img src="https://img-blog.csdnimg.cn/20191114120359988.png" alt="">
                        </a>
                    </div>
                    <div class="column-pay-right">
                        <div class="title">
                            <a href="https://blog.csdn.net/xufive/article/category/9506563?utm_source=payColumnDetails" target="_blank" class="topic">跟“风云卫星”数据工程师学Python</a>
                            <a href="https://blog.csdn.net/xufive/article/category/9506563?utm_source=payColumnDetails" target="_blank" class="column-pay-subscription">立即订阅</a>
                        </div>
                        <div class="introduce">曾参与过风云系列卫星、碳卫星、子午工程、嫦娥等项目的数据处理工作；有超10年大型项目的开发经验。
专栏收入了作者为Python爱好者精心打造的多篇文章，从小白入门学习的基础语法、基础模块精讲等内容外，还提出了“Python语感训练”的概念和方法，不仅为初学者提供了进阶之路，有一定基础的程序员亦可从中受益。后续，本专栏还将加入2D/3D应用开发、数据处理、实战项目等精品内容，敬请期待。</div>
                        <div class="information">
                            <a href="https://blog.csdn.net/xufive/article/category/9506563?utm_source=payColumnDetails" target="_blank">
                            <img src="https://profile.csdnimg.cn/1/3/9/3_xufive" alt="" username="xufive"><span class="name">xufive</span></a>
                            <span class="column-money"><span class="money">¥3.80 </span><span>1441人订阅</span></span>
                        </div>
                    </div>
                </div>
                        <!--付费专栏入口结束-->
            <div class="recommend-box">
                                    <div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/singleone111/article/details/88547071","strategy":"BlogCommendFromMachineLearnPai2","index":"0"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/singleone111/article/details/88547071","strategy":"BlogCommendFromMachineLearnPai2","index":"0"}'>
	<div class="content">
		<a href="https://blog.csdn.net/singleone111/article/details/88547071" target="_blank"  rel="noopener" title="Python： 几种websocket的链接方式">
		<h4 class="text-truncate oneline">
				<em>Python</em>： 几种<em>websocket</em>的链接方式		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">03-14</span>
				<span class="read-num hover-hide">
					阅读数 
					3145</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/singleone111/article/details/88547071" target="_blank" rel="noopener" title="Python： 几种websocket的链接方式">
				<span class="desc oneline">转载：https://blog.csdn.net/Darkman_EX/article/details/82592118第一种,使用create_connection链接，需要pipinstallwe...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/singleone111">来自：	<span class="blog_title"> singleone111的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_43486863/article/details/83344368","strategy":"BlogCommendFromMachineLearnPai2","index":"1"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_43486863/article/details/83344368","strategy":"BlogCommendFromMachineLearnPai2","index":"1"}'>
	<div class="content">
		<a href="https://blog.csdn.net/weixin_43486863/article/details/83344368" target="_blank"  rel="noopener" title="Python+Django+channels实现websocket">
		<h4 class="text-truncate oneline">
				<em>Python</em>+Django+channels实现<em>websocket</em>		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">01-23</span>
				<span class="read-num hover-hide">
					阅读数 
					2461</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/weixin_43486863/article/details/83344368" target="_blank" rel="noopener" title="Python+Django+channels实现websocket">
				<span class="desc oneline">Python+Django+channels实现websocket前言公司需要实现一个长连接，用的Python的Django框架。研究了很长时间，发现Django+channels可以实现websoc...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_43486863">来自：	<span class="blog_title"> weixin_43486863的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/CSDN_Boring/article/details/77542644","strategy":"BlogCommendFromMachineLearnPai2","index":"2"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/CSDN_Boring/article/details/77542644","strategy":"BlogCommendFromMachineLearnPai2","index":"2"}'>
	<div class="content">
		<a href="https://blog.csdn.net/CSDN_Boring/article/details/77542644" target="_blank"  rel="noopener" title="Python 3.6.0 实现 websocket server">
		<h4 class="text-truncate oneline">
				<em>Python</em> 3.6.0 实现 <em>websocket</em> server		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">08-24</span>
				<span class="read-num hover-hide">
					阅读数 
					2万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/CSDN_Boring/article/details/77542644" target="_blank" rel="noopener" title="Python 3.6.0 实现 websocket server">
				<span class="desc oneline">Python3.6.0实现websocketserver网上的好多教程都是基于Python2.X的，虽然差不多，但是对于我们这些刚刚听说过webSocket的小白来说，微小的差异也会让我们debug半...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/CSDN_Boring">来自：	<span class="blog_title"> HuangDanGeeker的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/caobin0825/article/details/80325709","strategy":"BlogCommendFromMachineLearnPai2","index":"3"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/caobin0825/article/details/80325709","strategy":"BlogCommendFromMachineLearnPai2","index":"3"}'>
	<div class="content">
		<a href="https://blog.csdn.net/caobin0825/article/details/80325709" target="_blank"  rel="noopener" title="python websocket模拟客户端">
		<h4 class="text-truncate oneline">
				<em>python</em> <em>websocket</em>模拟客户端		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">05-15</span>
				<span class="read-num hover-hide">
					阅读数 
					6504</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/caobin0825/article/details/80325709" target="_blank" rel="noopener" title="python websocket模拟客户端">
				<span class="desc oneline">fromwebsocketimportcreate_connectionws=create_connection(&amp;quot;ws://127.0.0.1:9002&amp;quot;)ws.send(&amp;qu...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/caobin0825">来自：	<span class="blog_title"> caobin0825的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_59" data-pid="59"><script type="text/javascript">
    (function() {
        var s = "_" + Math.random().toString(36).slice(2);
        document.write('<div style="" id="' + s + '"></div>');
        (window.slotbydup = window.slotbydup || []).push({
            id: "u3491668",
            container:  s
        });
    })();
</script>
<!-- 多条广告如下脚本只需引入一次 -->
<script type="text/javascript" src="//cpro.baidustatic.com/cpro/ui/c.js" async="async" defer="defer" ></script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=59&a=78&c=0&k=&d=1&t=3&u=9a86880b4acf45a2b5c731e32f071e0e"></div></div>
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/qq562029186/article/details/81203893","strategy":"BlogCommendFromMachineLearnPai2","index":"4"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/qq562029186/article/details/81203893","strategy":"BlogCommendFromMachineLearnPai2","index":"4"}'>
	<div class="content">
		<a href="https://blog.csdn.net/qq562029186/article/details/81203893" target="_blank"  rel="noopener" title="python实现的WebSocket客户端">
		<h4 class="text-truncate oneline">
				<em>python</em>实现的<em>WebSocket</em>客户端		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">07-25</span>
				<span class="read-num hover-hide">
					阅读数 
					8930</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/qq562029186/article/details/81203893" target="_blank" rel="noopener" title="python实现的WebSocket客户端">
				<span class="desc oneline">安装sudopipinstallwebsocket-client示例客户端代码：#!/usr/bin/pythonfromwebsocketimportcreate_connectionws=crea...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/qq562029186">来自：	<span class="blog_title"> 大西瓜Blog</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/Darkman_EX/article/details/82592118","strategy":"BlogCommendFromBaidu","index":"5"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/Darkman_EX/article/details/82592118","strategy":"BlogCommendFromBaidu","index":"5"}'>
	<div class="content">
		<a href="https://blog.csdn.net/Darkman_EX/article/details/82592118" target="_blank"  rel="noopener" title="python: websocket获取实时数据的几种常见链接方式">
		<h4 class="text-truncate oneline">
				<em>python</em>: <em>websocket</em>获取实时数据的几种常见链接方式		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">09-10</span>
				<span class="read-num hover-hide">
					阅读数 
					6744</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/Darkman_EX/article/details/82592118" target="_blank" rel="noopener" title="python: websocket获取实时数据的几种常见链接方式">
				<span class="desc oneline">第一种,使用create_connection链接，需要pipinstallwebsocket-client(此方法不建议使用，链接不稳定，容易断，并且连接很耗时)importtimefromwebs...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/Darkman_EX">来自：	<span class="blog_title"> Darkman_EX的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_42989364/article/details/88924946","strategy":"BlogCommendFromBaidu","index":"6"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_42989364/article/details/88924946","strategy":"BlogCommendFromBaidu","index":"6"}'>
	<div class="content">
		<a href="https://blog.csdn.net/weixin_42989364/article/details/88924946" target="_blank"  rel="noopener" title="python websocket （1）请求响应介绍">
		<h4 class="text-truncate oneline">
				<em>python</em> <em>websocket</em> （1）请求响应介绍		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">03-31</span>
				<span class="read-num hover-hide">
					阅读数 
					451</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/weixin_42989364/article/details/88924946" target="_blank" rel="noopener" title="python websocket （1）请求响应介绍">
				<span class="desc oneline">websocket是html5引入的一个新特性，传统的web应用是通过http协议来提供支持，如果要实时同步传输数据，需要轮询，效率低下websocket是类似socket通信，web端连接服务器后，...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_42989364">来自：	<span class="blog_title"> weixin_42989364的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
	<div class="recommend-item-box recommend-box-ident recommend-download-box clearfix" data-report-view='{"mod":"popu_614","dest":"https://download.csdn.net/download/liwenzhen/11003859","strategy":"BlogCommendFromBaidu","index":"7"}' data-report-click='{"mod":"popu_614","dest":"https://download.csdn.net/download/liwenzhen/11003859","strategy":"BlogCommendFromBaidu","index":"7"}'>
		<a href="https://download.csdn.net/download/liwenzhen/11003859"rel="noopener" target="_blank" rel="noopener">
			<div class="content clearfix">
				<div class="">
					<h4 class="text-truncate oneline clearfix">
						<em>python</em>实现<em>websocket</em>					</h4>
					<span class="data float-right">03-07</span>
				</div>
				<div class="desc oneline">
						python，websocket实现，供大家学习 websocket，实现tcp通信，替代轮询，commit等技术 良心推荐				</div>
				<span class="type-show type-show-download">下载</span>
			</div>
		</a>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/hch011/article/details/79714648","strategy":"BlogCommendFromBaidu","index":"8"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/hch011/article/details/79714648","strategy":"BlogCommendFromBaidu","index":"8"}'>
	<div class="content">
		<a href="https://blog.csdn.net/hch011/article/details/79714648" target="_blank"  rel="noopener" title="Python3 websocket server与client及javascript client通信实现原理">
		<h4 class="text-truncate oneline">
				<em>Python</em>3 <em>websocket</em> server与client及javascript client通信实现原理		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">03-27</span>
				<span class="read-num hover-hide">
					阅读数 
					1554</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/hch011/article/details/79714648" target="_blank" rel="noopener" title="Python3 websocket server与client及javascript client通信实现原理">
				<span class="desc oneline">原文：https://blog.csdn.net/leemboy/article/details/79449819﻿﻿     WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/hch011">来自：	<span class="blog_title"> hch011的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_60" data-pid="60"><div id="three_ad8" class="mediav_ad" ></div>
<script type="text/javascript" src="//static.mediav.com/js/mvf_news_feed.js"></script>
<script>
                                               NEWS_FEED({
                w: 900,
                h : 84,
                showid : 'Afihld',
                placeholderId: "three_ad8",
                inject : 'define',
                define : {
                    imagePosition : 'left',
                    imageBorderRadius : 3,
                    imageWidth: 90,
                    imageHeight: 60,
                    imageFill : 'clip',
                    displayImage : true,
                    displayTitle : true,
                    titleFontSize: 18,
                    titleFontColor: '#000',
                    titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
                    titleFontWeight: 'bold',
                    titlePaddingTop : 0,
                    titlePaddingRight : 0,
                    titlePaddingBottom : 5,
                    titlePaddingLeft : 16,
                    displayDesc : true,
                    descFontSize: 14,
                    descFontColor: '#8e959a',
                    descFontFamily : 'Microsoft Yahei',
                    paddingTop : 10,
                    paddingRight : 0,
                    paddingBottom : 0,
                    paddingLeft : 0,
                    backgroundColor: '#fff',
                    hoverColor: '#000'
                      }
                  })
                                        </script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=60&a=43&c=0&k=&d=1&t=3&u=ad63585512fd47b7acdc22140500bc0c"></div></div>
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/Dt388426/article/details/100523551","strategy":"BlogCommendFromBaidu","index":"9"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/Dt388426/article/details/100523551","strategy":"BlogCommendFromBaidu","index":"9"}'>
	<div class="content">
		<a href="https://blog.csdn.net/Dt388426/article/details/100523551" target="_blank"  rel="noopener" title="python websocket连接方式">
		<h4 class="text-truncate oneline">
				<em>python</em> <em>websocket</em>连接方式		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">09-03</span>
				<span class="read-num hover-hide">
					阅读数 
					213</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/Dt388426/article/details/100523551" target="_blank" rel="noopener" title="python websocket连接方式">
				<span class="desc oneline">websocket获取格式与数据这里是获取到数据的请求格式向websocket发送请求发送请求返回数据importjsonfromws4py.client.threadedclientimportWe...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/Dt388426">来自：	<span class="blog_title"> Dt388426的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/a649344475/article/details/81350017","strategy":"BlogCommendFromMachineLearnPai2","index":"10"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/a649344475/article/details/81350017","strategy":"BlogCommendFromMachineLearnPai2","index":"10"}'>
	<div class="content">
		<a href="https://blog.csdn.net/a649344475/article/details/81350017" target="_blank"  rel="noopener" title="Python 异步">
		<h4 class="text-truncate oneline">
				<em>Python</em> 异步		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">08-01</span>
				<span class="read-num hover-hide">
					阅读数 
					205</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/a649344475/article/details/81350017" target="_blank" rel="noopener" title="Python 异步">
				<span class="desc oneline">1 看起来是有点异步的意思，实际上还是一个多线程from threading import Threadimport timedef async(func):    def wrapper(*args...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/a649344475">来自：	<span class="blog_title"> 医然</span></a>
												</span>
		</p>
	</div>
	</div>

	
			<div class="recommend-item-box blog-expert-recommend-box">
			<div class="d-flex">
				<div class="blog-expert-recommend">
					<div class="blog-expert">
						<div class="blog-expert-flexbox"></div>
					</div>
				</div>
			</div>
		</div>
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/Mr_Zhen/article/details/88532719","strategy":"BlogCommendFromMachineLearnPai2","index":"11"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/Mr_Zhen/article/details/88532719","strategy":"BlogCommendFromMachineLearnPai2","index":"11"}'>
	<div class="content">
		<a href="https://blog.csdn.net/Mr_Zhen/article/details/88532719" target="_blank"  rel="noopener" title="python websocket实时消息推送">
		<h4 class="text-truncate oneline">
				<em>python</em> <em>websocket</em>实时消息推送		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">03-13</span>
				<span class="read-num hover-hide">
					阅读数 
					1872</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/Mr_Zhen/article/details/88532719" target="_blank" rel="noopener" title="python websocket实时消息推送">
				<span class="desc oneline">pythonwebsocket实时消息推送本人写的渣，大神勿喷。服务端代码#-*-coding:utf-8-*-#@Time:2019/3/1210:11#@Author:甄超锋#@Email:453...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/Mr_Zhen">来自：	<span class="blog_title"> Mr_Zhen的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_37989267/article/details/87928934","strategy":"BlogCommendFromMachineLearnPai2","index":"12"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_37989267/article/details/87928934","strategy":"BlogCommendFromMachineLearnPai2","index":"12"}'>
	<div class="content">
		<a href="https://blog.csdn.net/weixin_37989267/article/details/87928934" target="_blank"  rel="noopener" title="python websocket-server  websocket_client">
		<h4 class="text-truncate oneline">
				<em>python</em> <em>websocket</em>-server  <em>websocket</em>_client		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">02-26</span>
				<span class="read-num hover-hide">
					阅读数 
					825</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/weixin_37989267/article/details/87928934" target="_blank" rel="noopener" title="python websocket-server  websocket_client">
				<span class="desc oneline">websocket-server#pipinstallwebsocket-serverfromwebsocket_serverimportWebsocketServer#当新的客户端连接时会提示def...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_37989267">来自：	<span class="blog_title"> hllyzms的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/VhWfR2u02Q/article/details/80326045","strategy":"BlogCommendFromMachineLearnPai2","index":"13"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/VhWfR2u02Q/article/details/80326045","strategy":"BlogCommendFromMachineLearnPai2","index":"13"}'>
	<div class="content">
		<a href="https://blog.csdn.net/VhWfR2u02Q/article/details/80326045" target="_blank"  rel="noopener" title="WebSocket 通信过程与实现">
		<h4 class="text-truncate oneline">
				<em>WebSocket</em> 通信过程与实现		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">05-12</span>
				<span class="read-num hover-hide">
					阅读数 
					268</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/VhWfR2u02Q/article/details/80326045" target="_blank" rel="noopener" title="WebSocket 通信过程与实现">
				<span class="desc oneline">      &amp;amp;#13;                    &amp;amp;#13;&amp;amp;#13;                    &amp;amp;#13;&amp;amp;#13;         ...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/VhWfR2u02Q">来自：	<span class="blog_title"> 前端大全</span></a>
												</span>
		</p>
	</div>
	</div>

	<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_61" data-pid="61"><iframe  src="https://adaccount.csdn.net/#/preview/794?m=EEcfiviSHbDLStiiEDpScJHpJnLnAtEcbUiityJUHJiSLEXcHJyLJEpiEEofpiHJnQtWLQtLSoLnJtbmAnQEbmvfAcHpEncQpLnQ&k=" frameborder="0" width= "100%"  height= "75px" scrolling="no" ></iframe><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?d=2&k=&m=EEcfiviSHbDLStiiEDpScJHpJnLnAtEcbUiityJUHJiSLEXcHJyLJEpiEEofpiHJnQtWLQtLSoLnJtbmAnQEbmvfAcHpEncQpLnQ"></div></div>
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_30387423/article/details/94862526","strategy":"BlogCommendFromMachineLearnPai2","index":"14"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_30387423/article/details/94862526","strategy":"BlogCommendFromMachineLearnPai2","index":"14"}'>
	<div class="content">
		<a href="https://blog.csdn.net/weixin_30387423/article/details/94862526" target="_blank"  rel="noopener" title="websocket python实现原理">
		<h4 class="text-truncate oneline">
				<em>websocket</em> <em>python</em>实现原理		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">04-25</span>
				<span class="read-num hover-hide">
					阅读数 
					54</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/weixin_30387423/article/details/94862526" target="_blank" rel="noopener" title="websocket python实现原理">
				<span class="desc oneline">&quot;&quot;&quot; pip install ws4py &quot;&quot;&quot;import jsonfrom ws4py.client.threadedclient import WebSocketClient  class C...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_30387423">来自：	<span class="blog_title"> weixin_30387423的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_30355437/article/details/99480284","strategy":"BlogCommendFromBaidu","index":"15"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_30355437/article/details/99480284","strategy":"BlogCommendFromBaidu","index":"15"}'>
	<div class="content">
		<a href="https://blog.csdn.net/weixin_30355437/article/details/99480284" target="_blank"  rel="noopener" title="python_websocket模块">
		<h4 class="text-truncate oneline">
				<em>python</em>_<em>websocket</em>模块		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">07-23</span>
				<span class="read-num hover-hide">
					阅读数 
					140</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/weixin_30355437/article/details/99480284" target="_blank" rel="noopener" title="python_websocket模块">
				<span class="desc oneline">待续https://www.jianshu.com/p/3b1397617cd4https://www.cnblogs.com/xiaoyou2018/archive/2018/07/18/93289...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_30355437">来自：	<span class="blog_title"> weixin_30355437的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
	<div class="recommend-item-box recommend-box-ident recommend-download-box clearfix" data-report-view='{"mod":"popu_614","dest":"https://download.csdn.net/download/csdn_boring/9949128","strategy":"BlogCommendFromBaidu","index":"16"}' data-report-click='{"mod":"popu_614","dest":"https://download.csdn.net/download/csdn_boring/9949128","strategy":"BlogCommendFromBaidu","index":"16"}'>
		<a href="https://download.csdn.net/download/csdn_boring/9949128"rel="noopener" target="_blank" rel="noopener">
			<div class="content clearfix">
				<div class="">
					<h4 class="text-truncate oneline clearfix">
						<em>websocket</em> Server <em>Python</em>实现					</h4>
					<span class="data float-right">08-24</span>
				</div>
				<div class="desc oneline">
						python websocket server javascript websocket client				</div>
				<span class="type-show type-show-download">下载</span>
			</div>
		</a>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_24822271/article/details/90229267","strategy":"BlogCommendFromBaidu","index":"17"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_24822271/article/details/90229267","strategy":"BlogCommendFromBaidu","index":"17"}'>
	<div class="content">
		<a href="https://blog.csdn.net/qq_24822271/article/details/90229267" target="_blank"  rel="noopener" title="python如何创建websocket服务">
		<h4 class="text-truncate oneline">
				<em>python</em>如何创建<em>websocket</em>服务		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">05-15</span>
				<span class="read-num hover-hide">
					阅读数 
					428</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/qq_24822271/article/details/90229267" target="_blank" rel="noopener" title="python如何创建websocket服务">
				<span class="desc oneline">python如何创建websocket服务服务端客户端服务端&amp;gt;&amp;gt;&amp;gt;classWSserver():	asyncdefhandle(self,websocket,path):		rec...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/qq_24822271">来自：	<span class="blog_title"> qq_24822271的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/m0_37581001/article/details/83624240","strategy":"BlogCommendFromBaidu","index":"18"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/m0_37581001/article/details/83624240","strategy":"BlogCommendFromBaidu","index":"18"}'>
	<div class="content">
		<a href="https://blog.csdn.net/m0_37581001/article/details/83624240" target="_blank"  rel="noopener" title="使用python进行websocket的客户端压力测试">
		<h4 class="text-truncate oneline">
				使用<em>python</em>进行<em>websocket</em>的客户端压力测试		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">11-01</span>
				<span class="read-num hover-hide">
					阅读数 
					2443</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/m0_37581001/article/details/83624240" target="_blank" rel="noopener" title="使用python进行websocket的客户端压力测试">
				<span class="desc oneline">这个代码是从github上找到。然后简单修改了下。大神运用了进程池，以及线程池的内容。所以保存下来，学习学习然后需要说明的是：本次用的python2.7，也尝试用python3.6，但是老实出现web...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/m0_37581001">来自：	<span class="blog_title"> m0_37581001的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_62" data-pid="62"><iframe  src="https://adaccount.csdn.net/#/preview/575?m=ncEpSQvHctEttcSpypAHLcLADDLbEcHiLXDHpvpibyvLbntHnJQSbEWEEbQpAtoSLnciUtQSJEbSScncAnEEyiLJJnSSEHcQLbiQ&k=" frameborder="0" width= "100%"  height= "75px" scrolling="no" ></iframe><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?d=2&k=&m=ncEpSQvHctEttcSpypAHLcLADDLbEcHiLXDHpvpibyvLbntHnJQSbEWEEbQpAtoSLnciUtQSJEbSScncAnEEyiLJJnSSEHcQLbiQ"></div></div>
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/jeason_L/article/details/84945982","strategy":"BlogCommendFromMachineLearnPai2","index":"19"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/jeason_L/article/details/84945982","strategy":"BlogCommendFromMachineLearnPai2","index":"19"}'>
	<div class="content">
		<a href="https://blog.csdn.net/jeason_L/article/details/84945982" target="_blank"  rel="noopener" title="python3 的 websocket服务器坑（连接浏览器的websocket）【一】">
		<h4 class="text-truncate oneline">
				<em>python</em>3 的 <em>websocket</em>服务器坑（连接浏览器的<em>websocket</em>）【一】		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">12-10</span>
				<span class="read-num hover-hide">
					阅读数 
					2176</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/jeason_L/article/details/84945982" target="_blank" rel="noopener" title="python3 的 websocket服务器坑（连接浏览器的websocket）【一】">
				<span class="desc oneline">这里先放一个python2的websocket【代码】我一开始以为随便改一下python2和python3的兼容就可以直接运行了。谁知道，人算不如天算天算，搞了我一天都没搞好。然后弃坑，不做伸手党，万...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/jeason_L">来自：	<span class="blog_title"> jeason_L的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_33961117/article/details/94442908","strategy":"BlogCommendFromMachineLearnPai2","index":"20"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_33961117/article/details/94442908","strategy":"BlogCommendFromMachineLearnPai2","index":"20"}'>
	<div class="content">
		<a href="https://blog.csdn.net/qq_33961117/article/details/94442908" target="_blank"  rel="noopener" title="WebSocket - 基于 Python 的主流实现方式总结">
		<h4 class="text-truncate oneline">
				<em>WebSocket</em> - 基于 <em>Python</em> 的主流实现方式总结		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">07-02</span>
				<span class="read-num hover-hide">
					阅读数 
					771</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/qq_33961117/article/details/94442908" target="_blank" rel="noopener" title="WebSocket - 基于 Python 的主流实现方式总结">
				<span class="desc oneline">目录一、WebSocket-网络通信协议1-1简介二、WebsocketsserversandclientsinPython2-0connect2-0-1建立一对一短连接​2-0-2建立一对一长连接2...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/qq_33961117">来自：	<span class="blog_title"> L司逾N的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/csdniter/article/details/98355667","strategy":"BlogCommendFromMachineLearnPai2","index":"21"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/csdniter/article/details/98355667","strategy":"BlogCommendFromMachineLearnPai2","index":"21"}'>
	<div class="content">
		<a href="https://blog.csdn.net/csdniter/article/details/98355667" target="_blank"  rel="noopener" title="【Python】websocket">
		<h4 class="text-truncate oneline">
				【<em>Python</em>】<em>websocket</em>		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">08-03</span>
				<span class="read-num hover-hide">
					阅读数 
					238</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/csdniter/article/details/98355667" target="_blank" rel="noopener" title="【Python】websocket">
				<span class="desc oneline">WebSocket协议是基于TCP的一种新的协议。它实现了浏览器与服务器全双工(full-duplex)通信。其本质是保持TCP连接，属于长链接，在浏览器和服务端通过Socket进行通信。除了能响应请...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/csdniter">来自：	<span class="blog_title"> 月守护的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_41449756/article/details/90239053","strategy":"BlogCommendFromMachineLearnPai2","index":"22"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_41449756/article/details/90239053","strategy":"BlogCommendFromMachineLearnPai2","index":"22"}'>
	<div class="content">
		<a href="https://blog.csdn.net/weixin_41449756/article/details/90239053" target="_blank"  rel="noopener" title="websocket Python">
		<h4 class="text-truncate oneline">
				<em>websocket</em> <em>Python</em>		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">08-01</span>
				<span class="read-num hover-hide">
					阅读数 
					68</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/weixin_41449756/article/details/90239053" target="_blank" rel="noopener" title="websocket Python">
				<span class="desc oneline">1、接口封装import sysimport structfrom base64 import b64encodefrom hashlib import sha1import loggingfrom ...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_41449756">来自：	<span class="blog_title"> weixin_41449756的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/hnzwx888/article/details/84032081","strategy":"BlogCommendFromMachineLearnPai2","index":"23"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/hnzwx888/article/details/84032081","strategy":"BlogCommendFromMachineLearnPai2","index":"23"}'>
	<div class="content">
		<a href="https://blog.csdn.net/hnzwx888/article/details/84032081" target="_blank"  rel="noopener" title="websocket的简单使用（python）">
		<h4 class="text-truncate oneline">
				<em>websocket</em>的简单使用（<em>python</em>）		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">11-13</span>
				<span class="read-num hover-hide">
					阅读数 
					569</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/hnzwx888/article/details/84032081" target="_blank" rel="noopener" title="websocket的简单使用（python）">
				<span class="desc oneline">一轮询　什么是轮询：设置每一段时间去访问一次服务器，然后服务器返回最新的数据。这样服务器的压力会非常的大，并且还会有延迟。适用于小型程序。　实现：再客户端的页面设置一个定时发送请求的任务，每个这段时间...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/hnzwx888">来自：	<span class="blog_title"> hnzwx888的专栏</span></a>
												</span>
		</p>
	</div>
	</div>

	<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_63" data-pid="63"><iframe  src="https://adaccount.csdn.net/#/preview/758?m=icfvtHDcAtEnULLSHcUfLEcSpLLHpbLAptXUHEyvnimHJSQpJAiEtWcQpmfnotJJfpDpAinnStLJStpSnEifLHbiitAbbJnAcAQQ&k=" frameborder="0" width= "100%"  height= "75px" scrolling="no" ></iframe><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?d=2&k=&m=icfvtHDcAtEnULLSHcUfLEcSpLLHpbLAptXUHEyvnimHJSQpJAiEtWcQpmfnotJJfpDpAinnStLJStpSnEifLHbiitAbbJnAcAQQ"></div></div>
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/ithongchou/article/details/84331027","strategy":"BlogCommendFromBaidu","index":"24"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/ithongchou/article/details/84331027","strategy":"BlogCommendFromBaidu","index":"24"}'>
	<div class="content">
		<a href="https://blog.csdn.net/ithongchou/article/details/84331027" target="_blank"  rel="noopener" title="Python WebSocket">
		<h4 class="text-truncate oneline">
				<em>Python</em> <em>WebSocket</em>		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">11-21</span>
				<span class="read-num hover-hide">
					阅读数 
					621</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/ithongchou/article/details/84331027" target="_blank" rel="noopener" title="Python WebSocket">
				<span class="desc oneline">PythonWebSocketWebSocket是HTML5规范中新提出的客户端-服务器通讯协议，协议本身使用新的ws://URL格式。WebSocket是独立的、创建在TCP上的协议，和HTTP的唯...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/ithongchou">来自：	<span class="blog_title"> ithongchou的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/weiwei200/article/details/88555345","strategy":"BlogCommendFromBaidu","index":"25"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/weiwei200/article/details/88555345","strategy":"BlogCommendFromBaidu","index":"25"}'>
	<div class="content">
		<a href="https://blog.csdn.net/weiwei200/article/details/88555345" target="_blank"  rel="noopener" title="python websocket">
		<h4 class="text-truncate oneline">
				<em>python</em> <em>websocket</em>		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">03-14</span>
				<span class="read-num hover-hide">
					阅读数 
					101</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/weiwei200/article/details/88555345" target="_blank" rel="noopener" title="python websocket">
				<span class="desc oneline">依赖：pipinstallws4pypipinstallgevent#-*-coding:utf-8-*-fromgeventimportmonkeymonkey.patch_all()importa...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/weiwei200">来自：	<span class="blog_title"> 一个小角落</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/jeason_L/article/details/84945860","strategy":"BlogCommendFromBaidu","index":"26"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/jeason_L/article/details/84945860","strategy":"BlogCommendFromBaidu","index":"26"}'>
	<div class="content">
		<a href="https://blog.csdn.net/jeason_L/article/details/84945860" target="_blank"  rel="noopener" title="python2 的 websocket服务器坑（连接浏览器的websocket）">
		<h4 class="text-truncate oneline">
				<em>python</em>2 的 <em>websocket</em>服务器坑（连接浏览器的<em>websocket</em>）		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">12-10</span>
				<span class="read-num hover-hide">
					阅读数 
					471</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/jeason_L/article/details/84945860" target="_blank" rel="noopener" title="python2 的 websocket服务器坑（连接浏览器的websocket）">
				<span class="desc oneline">放一个python2.7可用的websocket 服务器（可能浏览器客户端退出的时候会出现报错导致程序执行异常，可以把错误的地方全部用try，再不行就直接return）#-*-coding:utf8-...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/jeason_L">来自：	<span class="blog_title"> jeason_L的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/chile19/article/details/80520704","strategy":"BlogCommendFromBaidu","index":"27"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/chile19/article/details/80520704","strategy":"BlogCommendFromBaidu","index":"27"}'>
	<div class="content">
		<a href="https://blog.csdn.net/chile19/article/details/80520704" target="_blank"  rel="noopener" title="在Ubuntu中安装Python3 websockets模块(必可行，网上别的方法很多都不行)">
		<h4 class="text-truncate oneline">
				在Ubuntu中安装<em>Python</em>3 <em>websocket</em>s模块(必可行，网上别的方法很多都不行)		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">05-31</span>
				<span class="read-num hover-hide">
					阅读数 
					4730</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/chile19/article/details/80520704" target="_blank" rel="noopener" title="在Ubuntu中安装Python3 websockets模块(必可行，网上别的方法很多都不行)">
				<span class="desc oneline">简单说说：        本人是嵌入式软件工程师，因项目需要，短时间简单入门了python3。使用python3websockets模块的主要目的是为了替换掉公司原有产品中使用普通的socket模块，...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/chile19">来自：	<span class="blog_title"> Chilap嵌入式</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box recommend-box-ident recommend-other-item-box" data-report-view='{"mod":"popu_614","dest":"https://bbs.csdn.net/topics/391925065","strategy":"BlogCommendFromBaidu","index":"28"}' data-report-click='{"mod":"popu_614","dest":"https://bbs.csdn.net/topics/391925065","strategy":"BlogCommendFromBaidu","index":"28"}'>
	<a href="https://bbs.csdn.net/topics/391925065" target="_blank" rel="noopener">
		<h4 class="text-truncate oneline">
				py3 <em>websocket</em>发送数据问题		</h4>
		<div class="info-box d-flex align-content-center">
				<span class="date">03-28</span>
		</div>
		<p class="content oneline">
			<span class="desc oneline">本菜鸟使用的是Python3。握手协议正常，web端onopen可以，然后我再服务端send一下数据。 浏览器报错：WebSocket connection to 'ws://127.0.0.1:50</span>
							<span class="type-show type-show-bbs">论坛</span>
					</p>
	</a>

</div>

	<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_64" data-pid="64"><div id="three_ad28" class="mediav_ad" ></div>
<script type="text/javascript" src="//static.mediav.com/js/mvf_news_feed.js"></script>
<script>
                                               NEWS_FEED({
                w: 852,
                h : 60,
                showid : 'Afihld',
                placeholderId: "three_ad28",
                inject : 'define',
                define : {
                    imagePosition : 'left',
                    imageBorderRadius : 3,
                    imageWidth: 90,
                    imageHeight: 60,
                    imageFill : 'clip',
                    displayImage : true,
                    displayTitle : true,
                    titleFontSize: 18,
                    titleFontColor: '#000',
                    titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
                    titleFontWeight: 'bold',
                    titlePaddingTop : 0,
                    titlePaddingRight : 0,
                    titlePaddingBottom : 5,
                    titlePaddingLeft : 16,
                    displayDesc : true,
                    descFontSize: 14,
                    descFontColor: '#8e959a',
                    descFontFamily : 'Microsoft Yahei',
                    paddingTop : 0,
                    paddingRight : 0,
                    paddingBottom : 0,
                    paddingLeft : 0,
                    backgroundColor: '#fff',
                    hoverColor: '#000'
                      }
                  })
                                        </script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=64&a=81&c=0&k=&d=1&t=3&u=feb3f3dafe794976bba704369acb1d2b"></div></div>
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/li875590079/article/details/87920592","strategy":"BlogCommendFromBaidu","index":"29"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/li875590079/article/details/87920592","strategy":"BlogCommendFromBaidu","index":"29"}'>
	<div class="content">
		<a href="https://blog.csdn.net/li875590079/article/details/87920592" target="_blank"  rel="noopener" title="python创建websocket client">
		<h4 class="text-truncate oneline">
				<em>python</em>创建<em>websocket</em> client		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">02-25</span>
				<span class="read-num hover-hide">
					阅读数 
					1439</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/li875590079/article/details/87920592" target="_blank" rel="noopener" title="python创建websocket client">
				<span class="desc oneline">最近需要测试同事写的websocket服务端的性能，为了便捷实用python语言写了一段测试用例，创建300个线程，并且一直发送heartfromwebsocketimportcreate_conne...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/li875590079">来自：	<span class="blog_title"> li875590079的专栏</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/xianailili/article/details/82180114","strategy":"BlogCommendFromBaidu","index":"30"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/xianailili/article/details/82180114","strategy":"BlogCommendFromBaidu","index":"30"}'>
	<div class="content">
		<a href="https://blog.csdn.net/xianailili/article/details/82180114" target="_blank"  rel="noopener" title="python websocket  Django 实时消息推送">
		<h4 class="text-truncate oneline">
				<em>python</em> <em>websocket</em>  Django 实时消息推送		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">08-29</span>
				<span class="read-num hover-hide">
					阅读数 
					1万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/xianailili/article/details/82180114" target="_blank" rel="noopener" title="python websocket  Django 实时消息推送">
				<span class="desc oneline">概述：  WebSocket是什么？     WebSocket是HTML5提供的一种浏览器与服务器间进行全双工通讯的协议。依靠这种协议可以实现客户端和服务器端，一次握手，双向实时通信。WebSock...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/xianailili">来自：	<span class="blog_title"> xianailili的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/sauphy/article/details/49913929","strategy":"BlogCommendFromBaidu","index":"31"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/sauphy/article/details/49913929","strategy":"BlogCommendFromBaidu","index":"31"}'>
	<div class="content">
		<a href="https://blog.csdn.net/sauphy/article/details/49913929" target="_blank"  rel="noopener" title="python之WebSocket的开发">
		<h4 class="text-truncate oneline">
				<em>python</em>之<em>WebSocket</em>的开发		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">11-18</span>
				<span class="read-num hover-hide">
					阅读数 
					8728</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/sauphy/article/details/49913929" target="_blank" rel="noopener" title="python之WebSocket的开发">
				<span class="desc oneline">## websocket.pyimport socketimport structimport hashlib,base64import threading,random#线程,套接字,哈希表,随机数...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/typing_yes_no/article/details/51758938","strategy":"BlogCommendFromBaidu","index":"32"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/typing_yes_no/article/details/51758938","strategy":"BlogCommendFromBaidu","index":"32"}'>
	<div class="content">
		<a href="https://blog.csdn.net/typing_yes_no/article/details/51758938" target="_blank"  rel="noopener" title="python websocket.WebSocketApp笔记">
		<h4 class="text-truncate oneline">
				<em>python</em> <em>websocket</em>.<em>WebSocket</em>App笔记		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">06-25</span>
				<span class="read-num hover-hide">
					阅读数 
					1万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/typing_yes_no/article/details/51758938" target="_blank" rel="noopener" title="python websocket.WebSocketApp笔记">
				<span class="desc oneline">pythonwebsocket.WebSocketApp笔记</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/typing_yes_no">来自：	<span class="blog_title"> 小马哒哒哒</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box recommend-box-ident recommend-other-item-box" data-report-view='{"mod":"popu_614","dest":"http://ask.csdn.net/questions/702714","strategy":"BlogCommendFromBaidu","index":"33"}' data-report-click='{"mod":"popu_614","dest":"http://ask.csdn.net/questions/702714","strategy":"BlogCommendFromBaidu","index":"33"}'>
	<a href="http://ask.csdn.net/questions/702714" target="_blank" rel="noopener">
		<h4 class="text-truncate oneline">
				如何用<em>python</em>和服务器建立<em>websocket</em>连接		</h4>
		<div class="info-box d-flex align-content-center">
				<span class="date">10-16</span>
		</div>
		<p class="content oneline">
			<span class="desc oneline">-</span>
							<span class="type-show type-show-ask">问答</span>
					</p>
	</a>

</div>

	<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_65" data-pid="65"><div id="three_ad33" class="mediav_ad" ></div>
<script>
                                               NEWS_FEED({
                w: 852,
                h : 60,
                showid : 'GNKXx7',
                placeholderId: "three_ad33",
                inject : 'define',
                define : {
                    imagePosition : 'left',
                    imageBorderRadius : 3,
                    imageWidth: 90,
                    imageHeight: 60,
                    imageFill : 'clip',
                    displayImage : true,
                    displayTitle : true,
                    titleFontSize: 18,
                    titleFontColor: '#000',
                    titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
                    titleFontWeight: 'bold',
                    titlePaddingTop : 0,
                    titlePaddingRight : 0,
                    titlePaddingBottom : 5,
                    titlePaddingLeft : 16,
                    displayDesc : true,
                    descFontSize: 14,
                    descFontColor: '#8e959a',
                    descFontFamily : 'Microsoft Yahei',
                    paddingTop : 0,
                    paddingRight : 0,
                    paddingBottom : 0,
                    paddingLeft : 0,
                    backgroundColor: '#fff',
                    hoverColor: '#000'
                      }
                  })
                                        </script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=65&a=84&c=0&k=&d=1&t=3&u=7e98f46a90b3489b832577d52e5cdf26"></div></div>
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/bbg221/article/details/78464051","strategy":"BlogCommendFromBaidu","index":"34"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/bbg221/article/details/78464051","strategy":"BlogCommendFromBaidu","index":"34"}'>
	<div class="content">
		<a href="https://blog.csdn.net/bbg221/article/details/78464051" target="_blank"  rel="noopener" title="python  socket.recv() 一直不停的返回空字符串，客户端怎么判断连接被断开？">
		<h4 class="text-truncate oneline">
				<em>python</em>  socket.recv() 一直不停的返回空字符串，客户端怎么判断连接被断开？		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">11-07</span>
				<span class="read-num hover-hide">
					阅读数 
					9027</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/bbg221/article/details/78464051" target="_blank" rel="noopener" title="python  socket.recv() 一直不停的返回空字符串，客户端怎么判断连接被断开？">
				<span class="desc oneline">pythonsocket.recv()一直不停的返回空字符串，客户端怎么判断连接被断开？</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/bbg221">来自：	<span class="blog_title"> 桥南玄机子的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box recommend-box-ident recommend-other-item-box" data-report-view='{"mod":"popu_614","dest":"http://ask.csdn.net/questions/717773","strategy":"BlogCommendFromBaidu","index":"35"}' data-report-click='{"mod":"popu_614","dest":"http://ask.csdn.net/questions/717773","strategy":"BlogCommendFromBaidu","index":"35"}'>
	<a href="http://ask.csdn.net/questions/717773" target="_blank" rel="noopener">
		<h4 class="text-truncate oneline">
				<em>python</em> 2.7 <em>websocket</em>抓取数据问题  求助		</h4>
		<div class="info-box d-flex align-content-center">
				<span class="date">12-20</span>
		</div>
		<p class="content oneline">
			<span class="desc oneline">-</span>
							<span class="type-show type-show-ask">问答</span>
					</p>
	</a>

</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/guyunzh/article/details/80595567","strategy":"BlogCommendFromBaidu","index":"36"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/guyunzh/article/details/80595567","strategy":"BlogCommendFromBaidu","index":"36"}'>
	<div class="content">
		<a href="https://blog.csdn.net/guyunzh/article/details/80595567" target="_blank"  rel="noopener" title="websocket知识汇总以及websocket在Django中的实现">
		<h4 class="text-truncate oneline">
				<em>websocket</em>知识汇总以及<em>websocket</em>在Django中的实现		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">06-06</span>
				<span class="read-num hover-hide">
					阅读数 
					6692</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/guyunzh/article/details/80595567" target="_blank" rel="noopener" title="websocket知识汇总以及websocket在Django中的实现">
				<span class="desc oneline">    最近在完成项目中需要用到实时技术,项目需求是将后端的一个文件内容实时读取然后发送到前端.这里主要涉及到两个技术.一个是后端如何实时读取一直在更新中的数据,另一点是如何保证web前后端的通讯,能...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/guyunzh">来自：	<span class="blog_title"> guyunzh的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/sinat_38682860/article/details/91384427","strategy":"BlogCommendFromBaidu","index":"37"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/sinat_38682860/article/details/91384427","strategy":"BlogCommendFromBaidu","index":"37"}'>
	<div class="content">
		<a href="https://blog.csdn.net/sinat_38682860/article/details/91384427" target="_blank"  rel="noopener" title="python之websocket">
		<h4 class="text-truncate oneline">
				<em>python</em>之<em>websocket</em>		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">06-10</span>
				<span class="read-num hover-hide">
					阅读数 
					181</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/sinat_38682860/article/details/91384427" target="_blank" rel="noopener" title="python之websocket">
				<span class="desc oneline">一、websocket WebSocket协议是基于TCP的一种新的协议。WebSocket最初在HTML5规范中被引用为TCP连接，作为基于TCP的套接字API的占位符。它实现了浏览器与服务器全双工...</span>
			</a>
			<span class="blog_title_box oneline ">
									<span class="type-show type-show-blog type-show-after">博文</span>
											<a target="_blank" rel="noopener" href="https://blog.csdn.net/sinat_38682860">来自：	<span class="blog_title"> python学习者的博客</span></a>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/z694644032/article/details/100084287","strategy":"BlogCommendHotData","index":"0"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/z694644032/article/details/100084287","strategy":"BlogCommendHotData","index":"0"}'>
	<div class="content">
		<a href="https://blog.csdn.net/z694644032/article/details/100084287" target="_blank"  rel="noopener" title="学会了这些技术，你离BAT大厂不远了">
		<h4 class="text-truncate oneline">
				学会了这些技术，你离BAT大厂不远了		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">08-26</span>
				<span class="read-num hover-hide">
					阅读数 
					15万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/z694644032/article/details/100084287" target="_blank" rel="noopener" title="学会了这些技术，你离BAT大厂不远了">
				<span class="desc oneline">每一个程序员都有一个梦想，梦想着能够进入阿里、腾讯、字节跳动、百度等一线互联网公司，由于身边的环境等原因，不知道 BAT 等一线互联网公司使用哪些技术？或者该如何去学习这些技术？或者我该去哪些获取这些...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_66" data-pid="66"><div id="three_ad38" class="mediav_ad" ></div>
<script>
                                               NEWS_FEED({
                w: 852,
                h : 60,
                showid : 'Afihld',
                placeholderId: "three_ad38",
                inject : 'define',
                define : {
                    imagePosition : 'left',
                    imageBorderRadius : 3,
                    imageWidth: 90,
                    imageHeight: 60,
                    imageFill : 'clip',
                    displayImage : true,
                    displayTitle : true,
                    titleFontSize: 18,
                    titleFontColor: '#000',
                    titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
                    titleFontWeight: 'bold',
                    titlePaddingTop : 0,
                    titlePaddingRight : 0,
                    titlePaddingBottom : 5,
                    titlePaddingLeft : 16,
                    displayDesc : true,
                    descFontSize: 14,
                    descFontColor: '#8e959a',
                    descFontFamily : 'Microsoft Yahei',
                    paddingTop : 0,
                    paddingRight : 0,
                    paddingBottom : 0,
                    paddingLeft : 0,
                    backgroundColor: '#fff',
                    hoverColor: '#000'
                      }
                  })
                                        </script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=66&a=87&c=0&k=&d=1&t=3&u=320f899aed2c4778b41cf0de4d745a15"></div></div>
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/gexiaoyizhimei/article/details/100122368","strategy":"BlogCommendHotData","index":"1"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/gexiaoyizhimei/article/details/100122368","strategy":"BlogCommendHotData","index":"1"}'>
	<div class="content">
		<a href="https://blog.csdn.net/gexiaoyizhimei/article/details/100122368" target="_blank"  rel="noopener" title="Linux文件操作高频使用命令">
		<h4 class="text-truncate oneline">
				Linux文件操作高频使用命令		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">08-28</span>
				<span class="read-num hover-hide">
					阅读数 
					1996</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/gexiaoyizhimei/article/details/100122368" target="_blank" rel="noopener" title="Linux文件操作高频使用命令">
				<span class="desc oneline">文章目录0.新建操作：1.查看操作2.删除操作3.复制操作4.移动操作：5.重命名操作：6.解压压缩操作
0.新建操作：
mkdir abc #新建一个文件夹
touch abc.sh #新建一...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/m0_38106923/article/details/100130354","strategy":"BlogCommendHotData","index":"2"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/m0_38106923/article/details/100130354","strategy":"BlogCommendHotData","index":"2"}'>
	<div class="content">
		<a href="https://blog.csdn.net/m0_38106923/article/details/100130354" target="_blank"  rel="noopener" title="程序员实用工具网站">
		<h4 class="text-truncate oneline">
				程序员实用工具网站		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">09-04</span>
				<span class="read-num hover-hide">
					阅读数 
					18万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/m0_38106923/article/details/100130354" target="_blank" rel="noopener" title="程序员实用工具网站">
				<span class="desc oneline">目录

1、搜索引擎

2、PPT

3、图片操作

4、文件共享

5、应届生招聘

6、程序员面试题库

7、办公、开发软件

8、高清图片、视频素材网站

9、项目开源

10、算法

11、在...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_44543508/article/details/100192558","strategy":"BlogCommendHotData","index":"3"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_44543508/article/details/100192558","strategy":"BlogCommendHotData","index":"3"}'>
	<div class="content">
		<a href="https://blog.csdn.net/qq_44543508/article/details/100192558" target="_blank"  rel="noopener" title="史上最详细的IDEA优雅整合Maven+SSM框架（详细思路+附带源码）">
		<h4 class="text-truncate oneline">
				史上最详细的IDEA优雅整合Maven+SSM框架（详细思路+附带源码）		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-29</span>
				<span class="read-num hover-hide">
					阅读数 
					3万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/qq_44543508/article/details/100192558" target="_blank" rel="noopener" title="史上最详细的IDEA优雅整合Maven+SSM框架（详细思路+附带源码）">
				<span class="desc oneline">网上很多整合SSM博客文章并不能让初探ssm的同学思路完全的清晰，可以试着关掉整合教程，摇两下头骨，哈一大口气，就在万事具备的时候，开整，这个时候你可能思路全无 ~中招了咩~ ，还有一些同学依旧在使用...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/sinat_33224091/article/details/100645137","strategy":"BlogCommendHotData","index":"4"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/sinat_33224091/article/details/100645137","strategy":"BlogCommendHotData","index":"4"}'>
	<div class="content">
		<a href="https://blog.csdn.net/sinat_33224091/article/details/100645137" target="_blank"  rel="noopener" title="全球最厉害的 14 位程序员！">
		<h4 class="text-truncate oneline">
				全球最厉害的 14 位程序员！		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">09-08</span>
				<span class="read-num hover-hide">
					阅读数 
					1万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/sinat_33224091/article/details/100645137" target="_blank" rel="noopener" title="全球最厉害的 14 位程序员！">
				<span class="desc oneline">来源 | ITWorld 整理自网络全球最厉害的 14 位程序员是谁？今天就让我们一起来了解一下吧，排名不分先后。01. Jon Skeet个人名望：程序技术问答网站 S......</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_40693171/article/details/100716766","strategy":"BlogCommendHotData","index":"5"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_40693171/article/details/100716766","strategy":"BlogCommendHotData","index":"5"}'>
	<div class="content">
		<a href="https://blog.csdn.net/qq_40693171/article/details/100716766" target="_blank"  rel="noopener" title="我花了一夜用数据结构给女朋友写个H5走迷宫游戏">
		<h4 class="text-truncate oneline">
				我花了一夜用数据结构给女朋友写个H5走迷宫游戏		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">09-21</span>
				<span class="read-num hover-hide">
					阅读数 
					15万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/qq_40693171/article/details/100716766" target="_blank" rel="noopener" title="我花了一夜用数据结构给女朋友写个H5走迷宫游戏">
				<span class="desc oneline">起因

又到深夜了，我按照以往在csdn和公众号写着数据结构！这占用了我大量的时间！我的超越妹妹严重缺乏陪伴而 怨气满满！

而女朋友时常埋怨，认为数据结构这么抽象难懂的东西没啥作用，常会问道...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	<div class="recommend-item-box recommend-recommend-box"><script type="text/javascript" src="//rabc1.iteye.com/production/res/rxjg.js?pkcgstj=jm"></script></div>
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/kexuanxiu1163/article/details/100869719","strategy":"BlogCommendHotData","index":"6"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/kexuanxiu1163/article/details/100869719","strategy":"BlogCommendHotData","index":"6"}'>
	<div class="content">
		<a href="https://blog.csdn.net/kexuanxiu1163/article/details/100869719" target="_blank"  rel="noopener" title="什么是大公司病（太形象了）">
		<h4 class="text-truncate oneline">
				什么是大公司病（太形象了）		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">09-15</span>
				<span class="read-num hover-hide">
					阅读数 
					1万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/kexuanxiu1163/article/details/100869719" target="_blank" rel="noopener" title="什么是大公司病（太形象了）">
				<span class="desc oneline">点击蓝色“五分钟学算法”关注我哟加个“星标”，天天中午 12:15，一起学算法作者 | 南之鱼来源 | 芝麻观点（chinamkt）所谓大企业病，一般都具有机构臃肿、多重......</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/ybhuangfugui/article/details/100913641","strategy":"BlogCommendHotData","index":"7"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/ybhuangfugui/article/details/100913641","strategy":"BlogCommendHotData","index":"7"}'>
	<div class="content">
		<a href="https://blog.csdn.net/ybhuangfugui/article/details/100913641" target="_blank"  rel="noopener" title="让程序员崩溃的瞬间（非程序员勿入）">
		<h4 class="text-truncate oneline">
				让程序员崩溃的瞬间（非程序员勿入）		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">09-16</span>
				<span class="read-num hover-hide">
					阅读数 
					22万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/ybhuangfugui/article/details/100913641" target="_blank" rel="noopener" title="让程序员崩溃的瞬间（非程序员勿入）">
				<span class="desc oneline">今天给大家带来点快乐，程序员才能看懂。



来源：https://zhuanlan.zhihu.com/p/47066521




1. 公司实习生找 Bug







2.在调试时，将断点设...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_43371556/article/details/101027046","strategy":"BlogCommendHotData","index":"8"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_43371556/article/details/101027046","strategy":"BlogCommendHotData","index":"8"}'>
	<div class="content">
		<a href="https://blog.csdn.net/qq_43371556/article/details/101027046" target="_blank"  rel="noopener" title="Spring高级技术梳理">
		<h4 class="text-truncate oneline">
				Spring高级技术梳理		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">09-20</span>
				<span class="read-num hover-hide">
					阅读数 
					3699</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/qq_43371556/article/details/101027046" target="_blank" rel="noopener" title="Spring高级技术梳理">
				<span class="desc oneline">Spring高级技术梳理   序言正文SpringDate部分Spring全家桶之SpringData——预科阶段Spring全家桶之SpringData——Spring 整合Hibernate与Hi...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/ljk126wy/article/details/101064186","strategy":"BlogCommendHotData","index":"9"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/ljk126wy/article/details/101064186","strategy":"BlogCommendHotData","index":"9"}'>
	<div class="content">
		<a href="https://blog.csdn.net/ljk126wy/article/details/101064186" target="_blank"  rel="noopener" title="Git 天天用 但是 Git 原理你了解吗？">
		<h4 class="text-truncate oneline">
				Git 天天用 但是 Git 原理你了解吗？		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">09-20</span>
				<span class="read-num hover-hide">
					阅读数 
					1万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/ljk126wy/article/details/101064186" target="_blank" rel="noopener" title="Git 天天用 但是 Git 原理你了解吗？">
				<span class="desc oneline">Git 原理
做技术一定要知其然知其所以然，意思就是：知道它是这样的，更知道它为什么是这样的。我主要通过4块内容来简单介绍 Git 是原理是什么样的。这4块内容如下：

Git 存储目录结构介绍
Gi...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/lantian_123/article/details/101488841","strategy":"BlogCommendHotData","index":"10"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/lantian_123/article/details/101488841","strategy":"BlogCommendHotData","index":"10"}'>
	<div class="content">
		<a href="https://blog.csdn.net/lantian_123/article/details/101488841" target="_blank"  rel="noopener" title="分享靠写代码赚钱的一些门路">
		<h4 class="text-truncate oneline">
				分享靠写代码赚钱的一些门路		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">09-26</span>
				<span class="read-num hover-hide">
					阅读数 
					5万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/lantian_123/article/details/101488841" target="_blank" rel="noopener" title="分享靠写代码赚钱的一些门路">
				<span class="desc oneline">作者 mezod，译者 josephchang10如今，通过自己的代码去赚钱变得越来越简单，不过对很多人来说依然还是很难，因为他们不知道有哪些门路。今天给大家分享一个精彩......</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	<div class="recommend-item-box recommend-recommend-box"><script type="text/javascript" src="//rabc1.iteye.com/production/res/rxjg.js?pkcgstj=jm"></script></div>
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/harvic880925/article/details/101511637","strategy":"BlogCommendHotData","index":"11"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/harvic880925/article/details/101511637","strategy":"BlogCommendHotData","index":"11"}'>
	<div class="content">
		<a href="https://blog.csdn.net/harvic880925/article/details/101511637" target="_blank"  rel="noopener" title="对计算机专业来说学历真的重要吗？">
		<h4 class="text-truncate oneline">
				对计算机专业来说学历真的重要吗？		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">09-27</span>
				<span class="read-num hover-hide">
					阅读数 
					7万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/harvic880925/article/details/101511637" target="_blank" rel="noopener" title="对计算机专业来说学历真的重要吗？">
				<span class="desc oneline">我本科学校是渣渣二本，研究生学校是985，现在毕业五年，校招笔试、面试，社招面试参加了两年了，就我个人的经历来说下这个问题。

这篇文章很长，但绝对是精华，相信我，读完以后，你会知道学历不好的解决方案...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/lantian_123/article/details/101514976","strategy":"BlogCommendHotData","index":"12"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/lantian_123/article/details/101514976","strategy":"BlogCommendHotData","index":"12"}'>
	<div class="content">
		<a href="https://blog.csdn.net/lantian_123/article/details/101514976" target="_blank"  rel="noopener" title="技术人员要拿百万年薪，必须要经历这9个段位">
		<h4 class="text-truncate oneline">
				技术人员要拿百万年薪，必须要经历这9个段位		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">08-24</span>
				<span class="read-num hover-hide">
					阅读数 
					2万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/lantian_123/article/details/101514976" target="_blank" rel="noopener" title="技术人员要拿百万年薪，必须要经历这9个段位">
				<span class="desc oneline">很多人都问，技术人员如何成长，每个阶段又是怎样的，如何才能走出当前的迷茫，实现自我的突破。所以我结合我自己10多年的从业经验，总结了技术人员成长的9个段位，希望对大家的职......</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/foruok/article/details/101678953","strategy":"BlogCommendHotData","index":"13"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/foruok/article/details/101678953","strategy":"BlogCommendHotData","index":"13"}'>
	<div class="content">
		<a href="https://blog.csdn.net/foruok/article/details/101678953" target="_blank"  rel="noopener" title="8000字干货：那些很厉害的人是怎么构建知识体系的">
		<h4 class="text-truncate oneline">
				8000字干货：那些很厉害的人是怎么构建知识体系的		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">09-29</span>
				<span class="read-num hover-hide">
					阅读数 
					4万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/foruok/article/details/101678953" target="_blank" rel="noopener" title="8000字干货：那些很厉害的人是怎么构建知识体系的">
				<span class="desc oneline">本文约8000字，正常阅读需要15~20分钟。读完本文可以获得如下收益：

分辨知识和知识体系的差别
理解如何用八大问发现知识的连接点；
掌握致用类知识体系的构建方法；
能够应用甜蜜区模型找到特定领域...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_40036754/article/details/102463099","strategy":"BlogCommendHotData","index":"14"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_40036754/article/details/102463099","strategy":"BlogCommendHotData","index":"14"}'>
	<div class="content">
		<a href="https://blog.csdn.net/qq_40036754/article/details/102463099" target="_blank"  rel="noopener" title="nginx学习，看这一篇就够了：下载、安装。使用：正向代理、反向代理、负载均衡。常用命令和配置文件">
		<h4 class="text-truncate oneline">
				nginx学习，看这一篇就够了：下载、安装。使用：正向代理、反向代理、负载均衡。常用命令和配置文件		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-25</span>
				<span class="read-num hover-hide">
					阅读数 
					7079</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/qq_40036754/article/details/102463099" target="_blank" rel="noopener" title="nginx学习，看这一篇就够了：下载、安装。使用：正向代理、反向代理、负载均衡。常用命令和配置文件">
				<span class="desc oneline">文章目录前言一、nginx简介1.  什么是 nginx 和可以做什么事情2.Nginx 作为 web 服务器3. 正向代理4. 反向代理5. 动静分离6.动静分离二、Nginx 的安装三、 Ngin...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/chest_/article/details/102537988","strategy":"BlogCommendHotData","index":"15"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/chest_/article/details/102537988","strategy":"BlogCommendHotData","index":"15"}'>
	<div class="content">
		<a href="https://blog.csdn.net/chest_/article/details/102537988" target="_blank"  rel="noopener" title="《漏洞篇》sql注入---入门到进阶">
		<h4 class="text-truncate oneline">
				《漏洞篇》sql注入---入门到进阶		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-24</span>
				<span class="read-num hover-hide">
					阅读数 
					2043</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/chest_/article/details/102537988" target="_blank" rel="noopener" title="《漏洞篇》sql注入---入门到进阶">
				<span class="desc oneline">目录导航
sql注入的原理
sql注入的条件
sql注入的危害
sql注入的分类、验证及利用方式
sql数值型注入

sql注入的原理：
概述：针对SQL注入的攻击行为可描述为通过用户可控参数中注入S...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/u012365828/article/details/102559913","strategy":"BlogCommendHotData","index":"16"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/u012365828/article/details/102559913","strategy":"BlogCommendHotData","index":"16"}'>
	<div class="content">
		<a href="https://blog.csdn.net/u012365828/article/details/102559913" target="_blank"  rel="noopener" title="500行代码，教你用python写个微信飞机大战">
		<h4 class="text-truncate oneline">
				500行代码，教你用python写个微信飞机大战		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-16</span>
				<span class="read-num hover-hide">
					阅读数 
					5万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/u012365828/article/details/102559913" target="_blank" rel="noopener" title="500行代码，教你用python写个微信飞机大战">
				<span class="desc oneline">这几天在重温微信小游戏的飞机大战，玩着玩着就在思考人生了，这飞机大战怎么就可以做的那么好，操作简单，简单上手。

帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来！让他们的左手 / ...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/zhongyangzhong/article/details/102578044","strategy":"BlogCommendHotData","index":"17"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/zhongyangzhong/article/details/102578044","strategy":"BlogCommendHotData","index":"17"}'>
	<div class="content">
		<a href="https://blog.csdn.net/zhongyangzhong/article/details/102578044" target="_blank"  rel="noopener" title="2019诺贝尔经济学奖得主：贫穷的本质是什么？">
		<h4 class="text-truncate oneline">
				2019诺贝尔经济学奖得主：贫穷的本质是什么？		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-15</span>
				<span class="read-num hover-hide">
					阅读数 
					1万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/zhongyangzhong/article/details/102578044" target="_blank" rel="noopener" title="2019诺贝尔经济学奖得主：贫穷的本质是什么？">
				<span class="desc oneline">2019年诺贝尔经济学奖，颁给了来自麻省理工学院的 阿巴希·巴纳吉（Abhijit Vinayak Banerjee）、艾丝特·杜芙若（Esther Duflo）夫妇和哈......</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/m0_37907797/article/details/102618796","strategy":"BlogCommendHotData","index":"18"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/m0_37907797/article/details/102618796","strategy":"BlogCommendHotData","index":"18"}'>
	<div class="content">
		<a href="https://blog.csdn.net/m0_37907797/article/details/102618796" target="_blank"  rel="noopener" title="别在学习框架了，那些让你起飞的计算机基础知识。">
		<h4 class="text-truncate oneline">
				别在学习框架了，那些让你起飞的计算机基础知识。		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-22</span>
				<span class="read-num hover-hide">
					阅读数 
					5万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/m0_37907797/article/details/102618796" target="_blank" rel="noopener" title="别在学习框架了，那些让你起飞的计算机基础知识。">
				<span class="desc oneline">我之前里的文章，写的大部分都是与计算机基础知识相关的，这些基础知识，就像我们的内功，如果在未来想要走的更远，这些内功是必须要修炼的。框架千变万化，而这些通用的底层知识，却是几乎不变的，了解了这些知识，...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_37969433/article/details/102637226","strategy":"BlogCommendHotData","index":"19"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_37969433/article/details/102637226","strategy":"BlogCommendHotData","index":"19"}'>
	<div class="content">
		<a href="https://blog.csdn.net/qq_37969433/article/details/102637226" target="_blank"  rel="noopener" title="MySQL数据库—SQL汇总">
		<h4 class="text-truncate oneline">
				MySQL数据库—SQL汇总		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-24</span>
				<span class="read-num hover-hide">
					阅读数 
					1万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/qq_37969433/article/details/102637226" target="_blank" rel="noopener" title="MySQL数据库—SQL汇总">
				<span class="desc oneline">一、准备
下文整理常见SQL语句的用法，使用MySQL5.7测试，参考了尚硅谷MySQL教程及用例。用例sql：
链接: https://pan.baidu.com/s/1tb3-12MRNFjV8d...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_35067322/article/details/102645455","strategy":"BlogCommendHotData","index":"20"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_35067322/article/details/102645455","strategy":"BlogCommendHotData","index":"20"}'>
	<div class="content">
		<a href="https://blog.csdn.net/qq_35067322/article/details/102645455" target="_blank"  rel="noopener" title="Spring Boot 2 实战：使用 Spring Boot Admin 监控你的应用">
		<h4 class="text-truncate oneline">
				Spring Boot 2 实战：使用 Spring Boot Admin 监控你的应用		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-20</span>
				<span class="read-num hover-hide">
					阅读数 
					642</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/qq_35067322/article/details/102645455" target="_blank" rel="noopener" title="Spring Boot 2 实战：使用 Spring Boot Admin 监控你的应用">
				<span class="desc oneline">1. 前言
生产上对 Web 应用 的监控是十分必要的。我们可以近乎实时来对应用的健康、性能等其他指标进行监控来及时应对一些突发情况。避免一些故障的发生。对于 Spring Boot 应用来说我们可以...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/loongggdroid/article/details/102656177","strategy":"BlogCommendHotData","index":"21"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/loongggdroid/article/details/102656177","strategy":"BlogCommendHotData","index":"21"}'>
	<div class="content">
		<a href="https://blog.csdn.net/loongggdroid/article/details/102656177" target="_blank"  rel="noopener" title="五款高效率黑科技神器工具，炸裂好用，省时间">
		<h4 class="text-truncate oneline">
				五款高效率黑科技神器工具，炸裂好用，省时间		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-20</span>
				<span class="read-num hover-hide">
					阅读数 
					2万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/loongggdroid/article/details/102656177" target="_blank" rel="noopener" title="五款高效率黑科技神器工具，炸裂好用，省时间">
				<span class="desc oneline">loonggg读完需要4分钟速读仅需2分钟感觉我好久好久没有给大家分享高质量的软件和插件了。今天周末，难得在家休息一下，痛下决心，分享一些我认为的高效率工具软件给大家。废......</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_36903042/article/details/102656641","strategy":"BlogCommendHotData","index":"22"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_36903042/article/details/102656641","strategy":"BlogCommendHotData","index":"22"}'>
	<div class="content">
		<a href="https://blog.csdn.net/qq_36903042/article/details/102656641" target="_blank"  rel="noopener" title="动画：用动画给女朋友讲解 TCP 四次分手过程">
		<h4 class="text-truncate oneline">
				动画：用动画给女朋友讲解 TCP 四次分手过程		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-21</span>
				<span class="read-num hover-hide">
					阅读数 
					2万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/qq_36903042/article/details/102656641" target="_blank" rel="noopener" title="动画：用动画给女朋友讲解 TCP 四次分手过程">
				<span class="desc oneline">作者 |  小鹿
来源 |  公众号：小鹿动画学编程

写在前边
大家好，我们又见面了，做为一个业余的动画师，上次的用动画的形式讲解 TCP 三次握手过程再各大平台收到了广大读者的喜爱，说文章有趣、有...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/m0_37907797/article/details/102661778","strategy":"BlogCommendHotData","index":"23"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/m0_37907797/article/details/102661778","strategy":"BlogCommendHotData","index":"23"}'>
	<div class="content">
		<a href="https://blog.csdn.net/m0_37907797/article/details/102661778" target="_blank"  rel="noopener" title="程序员必须掌握的核心算法有哪些？">
		<h4 class="text-truncate oneline">
				程序员必须掌握的核心算法有哪些？		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-21</span>
				<span class="read-num hover-hide">
					阅读数 
					6万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/m0_37907797/article/details/102661778" target="_blank" rel="noopener" title="程序员必须掌握的核心算法有哪些？">
				<span class="desc oneline">由于我之前一直强调数据结构以及算法学习的重要性，所以就有一些读者经常问我，数据结构与算法应该要学习到哪个程度呢？，说实话，这个问题我不知道要怎么回答你，主要取决于你想学习到哪些程度，不过针对这个问题，...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_43371556/article/details/102667146","strategy":"BlogCommendHotData","index":"24"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_43371556/article/details/102667146","strategy":"BlogCommendHotData","index":"24"}'>
	<div class="content">
		<a href="https://blog.csdn.net/qq_43371556/article/details/102667146" target="_blank"  rel="noopener" title="高并发技术">
		<h4 class="text-truncate oneline">
				高并发技术		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-24</span>
				<span class="read-num hover-hide">
					阅读数 
					1万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/qq_43371556/article/details/102667146" target="_blank" rel="noopener" title="高并发技术">
				<span class="desc oneline">高并发技术   第一章 预备知识一 理解大数据二 网工基础知识OSI七层参考模型应用层表示层会话层传输层网络层链路层物理层功能分层总结第二章 LVS技术一  LVS介绍二 LVS调度算法LVS命令监控...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/xufive/article/details/102676755","strategy":"BlogCommendHotData","index":"25"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/xufive/article/details/102676755","strategy":"BlogCommendHotData","index":"25"}'>
	<div class="content">
		<a href="https://blog.csdn.net/xufive/article/details/102676755" target="_blank"  rel="noopener" title="python 程序员进阶之路：从新手到高手的100个模块">
		<h4 class="text-truncate oneline">
				python 程序员进阶之路：从新手到高手的100个模块		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-23</span>
				<span class="read-num hover-hide">
					阅读数 
					5万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/xufive/article/details/102676755" target="_blank" rel="noopener" title="python 程序员进阶之路：从新手到高手的100个模块">
				<span class="desc oneline">在知乎和CSDN的圈子里，经常看到、听到一些 python 初学者说，学完基础语法后，不知道该学什么，学了也不知道怎么用，一脸的茫然。近日，CSDN的公众号推送了一篇博客，题目叫做《迷思：Python...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_43943977/article/details/102691392","strategy":"BlogCommendHotData","index":"26"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_43943977/article/details/102691392","strategy":"BlogCommendHotData","index":"26"}'>
	<div class="content">
		<a href="https://blog.csdn.net/weixin_43943977/article/details/102691392" target="_blank"  rel="noopener" title="Python——画一棵漂亮的樱花树（不同种樱花+玫瑰+圣诞树喔）">
		<h4 class="text-truncate oneline">
				Python——画一棵漂亮的樱花树（不同种樱花+玫瑰+圣诞树喔）		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-22</span>
				<span class="read-num hover-hide">
					阅读数 
					3万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/weixin_43943977/article/details/102691392" target="_blank" rel="noopener" title="Python——画一棵漂亮的樱花树（不同种樱花+玫瑰+圣诞树喔）">
				<span class="desc oneline">最近翻到一篇知乎，上面有不少用Python（大多是turtle库）绘制的树图，感觉很漂亮，我整理了一下，挑了一些我觉得不错的代码分享给大家（这些我都测试过，确实可以生成）
one 樱花树

 动...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/csdnnews/article/details/102693777","strategy":"BlogCommendHotData","index":"27"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/csdnnews/article/details/102693777","strategy":"BlogCommendHotData","index":"27"}'>
	<div class="content">
		<a href="https://blog.csdn.net/csdnnews/article/details/102693777" target="_blank"  rel="noopener" title="程序员不懂浪漫？胡扯！">
		<h4 class="text-truncate oneline">
				程序员不懂浪漫？胡扯！		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-22</span>
				<span class="read-num hover-hide">
					阅读数 
					2万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/csdnnews/article/details/102693777" target="_blank" rel="noopener" title="程序员不懂浪漫？胡扯！">
				<span class="desc oneline">程序员男朋友你的程序员男朋友为你做过什么暖心的事情呢？我的男朋友是一个程序员，他有很多大家在网络上吐槽的程序员的缺点，比如加班很多，没空陪我吃饭逛街看电影，比如说他有的时......</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/lianghecai52171314/article/details/102711958","strategy":"BlogCommendHotData","index":"28"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/lianghecai52171314/article/details/102711958","strategy":"BlogCommendHotData","index":"28"}'>
	<div class="content">
		<a href="https://blog.csdn.net/lianghecai52171314/article/details/102711958" target="_blank"  rel="noopener" title="阿里编程规范（简化版）">
		<h4 class="text-truncate oneline">
				阿里编程规范（简化版）		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-24</span>
				<span class="read-num hover-hide">
					阅读数 
					2814</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/lianghecai52171314/article/details/102711958" target="_blank" rel="noopener" title="阿里编程规范（简化版）">
				<span class="desc oneline">阿里编程规范 及 阿里Java开发规约插件 Alibaba Java Coding Guidelines
统一规范标准将有助于提高行业编码规范化水平，帮助行业人员提高开发质量和效率、大大降低代码维护成...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/hyb612/article/details/102730648","strategy":"BlogCommendHotData","index":"29"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/hyb612/article/details/102730648","strategy":"BlogCommendHotData","index":"29"}'>
	<div class="content">
		<a href="https://blog.csdn.net/hyb612/article/details/102730648" target="_blank"  rel="noopener" title="Linux/C/C++ 不可错过的好书">
		<h4 class="text-truncate oneline">
				Linux/C/C++ 不可错过的好书		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-24</span>
				<span class="read-num hover-hide">
					阅读数 
					1万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/hyb612/article/details/102730648" target="_blank" rel="noopener" title="Linux/C/C++ 不可错过的好书">
				<span class="desc oneline">来源：公众号【编程珠玑】

作者：守望先生

ID：shouwangxiansheng



前言

经常有读者让我推荐书籍，这次我就把我私藏的计算机书单分享给你们！不过由于时间匆忙，不会进行更加详细...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/u011225629/article/details/102756288","strategy":"BlogCommendHotData","index":"30"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/u011225629/article/details/102756288","strategy":"BlogCommendHotData","index":"30"}'>
	<div class="content">
		<a href="https://blog.csdn.net/u011225629/article/details/102756288" target="_blank"  rel="noopener" title="单点登录（SSO）">
		<h4 class="text-truncate oneline">
				单点登录（SSO）		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-26</span>
				<span class="read-num hover-hide">
					阅读数 
					1万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/u011225629/article/details/102756288" target="_blank" rel="noopener" title="单点登录（SSO）">
				<span class="desc oneline">一、SSO（单点登录）介绍

SSO英文全称Single SignOn，单点登录。SSO是在多个应用系统中，用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/m0_37907797/article/details/102759257","strategy":"BlogCommendHotData","index":"31"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/m0_37907797/article/details/102759257","strategy":"BlogCommendHotData","index":"31"}'>
	<div class="content">
		<a href="https://blog.csdn.net/m0_37907797/article/details/102759257" target="_blank"  rel="noopener" title="漫话：什么是 https ?这应该是全网把 https 讲的最好的一篇文章了">
		<h4 class="text-truncate oneline">
				漫话：什么是 https ?这应该是全网把 https 讲的最好的一篇文章了		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-26</span>
				<span class="read-num hover-hide">
					阅读数 
					2万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/m0_37907797/article/details/102759257" target="_blank" rel="noopener" title="漫话：什么是 https ?这应该是全网把 https 讲的最好的一篇文章了">
				<span class="desc oneline">今天这篇文章，讲通过对话的形式，让你由浅入深着知道，为什么 Https 是安全的。




一、对称加密

一禅：在每次发送真实数据之前，服务器先生成一把密钥，然后先把密钥传输给客户端。之后服务器给客...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_45108087/article/details/102766281","strategy":"BlogCommendHotData","index":"32"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/weixin_45108087/article/details/102766281","strategy":"BlogCommendHotData","index":"32"}'>
	<div class="content">
		<a href="https://blog.csdn.net/weixin_45108087/article/details/102766281" target="_blank"  rel="noopener" title="史上最全的mysql基础教程">
		<h4 class="text-truncate oneline">
				史上最全的mysql基础教程		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-28</span>
				<span class="read-num hover-hide">
					阅读数 
					1万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/weixin_45108087/article/details/102766281" target="_blank" rel="noopener" title="史上最全的mysql基础教程">
				<span class="desc oneline">启动与停止

启动mysql服务
sudo /usr/local/mysql/support-files/mysql.server start
停止mysql服务
sudo /usr/loc...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/m0_37907797/article/details/102767860","strategy":"BlogCommendHotData","index":"33"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/m0_37907797/article/details/102767860","strategy":"BlogCommendHotData","index":"33"}'>
	<div class="content">
		<a href="https://blog.csdn.net/m0_37907797/article/details/102767860" target="_blank"  rel="noopener" title="为什么你学不会递归？告别递归，谈谈我的经验">
		<h4 class="text-truncate oneline">
				为什么你学不会递归？告别递归，谈谈我的经验		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-28</span>
				<span class="read-num hover-hide">
					阅读数 
					2万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/m0_37907797/article/details/102767860" target="_blank" rel="noopener" title="为什么你学不会递归？告别递归，谈谈我的经验">
				<span class="desc oneline">可能很多人在大一的时候，就已经接触了递归了，不过，我敢保证很多人初学者刚开始接触递归的时候，是一脸懵逼的，我当初也是，给我的感觉就是，递归太神奇了！
可能也有一大部分人知道递归，也能看的懂递归，但在实...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_36903042/article/details/102770331","strategy":"BlogCommendHotData","index":"34"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/qq_36903042/article/details/102770331","strategy":"BlogCommendHotData","index":"34"}'>
	<div class="content">
		<a href="https://blog.csdn.net/qq_36903042/article/details/102770331" target="_blank"  rel="noopener" title="大学四年，分享看过的优质书籍">
		<h4 class="text-truncate oneline">
				大学四年，分享看过的优质书籍		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-27</span>
				<span class="read-num hover-hide">
					阅读数 
					2万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/qq_36903042/article/details/102770331" target="_blank" rel="noopener" title="大学四年，分享看过的优质书籍">
				<span class="desc oneline">数据结构与算法是我在大学里第一次接触到的，当时学了很多其他安卓、网页之类的，一开始就感觉纳闷，数据结构和算法学这个有啥用，再加上上的是一所野鸡大学，老师讲的也是模模糊糊，平时做项目、练习也几乎不用数据...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/harvic880925/article/details/102774769","strategy":"BlogCommendHotData","index":"35"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/harvic880925/article/details/102774769","strategy":"BlogCommendHotData","index":"35"}'>
	<div class="content">
		<a href="https://blog.csdn.net/harvic880925/article/details/102774769" target="_blank"  rel="noopener" title="有哪些让程序员受益终生的建议">
		<h4 class="text-truncate oneline">
				有哪些让程序员受益终生的建议		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-28</span>
				<span class="read-num hover-hide">
					阅读数 
					2万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/harvic880925/article/details/102774769" target="_blank" rel="noopener" title="有哪些让程序员受益终生的建议">
				<span class="desc oneline">从业五年多，辗转两个大厂，出过书，创过业，从技术小白成长为基层管理，联合几个业内大牛回答下这个问题，希望能帮到大家，记得帮我点赞哦。

敲黑板！！！读了这篇文章，你将知道如何才能进大厂，如何实现财务自...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/hollis_chuang/article/details/102776191","strategy":"BlogCommendHotData","index":"36"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/hollis_chuang/article/details/102776191","strategy":"BlogCommendHotData","index":"36"}'>
	<div class="content">
		<a href="https://blog.csdn.net/hollis_chuang/article/details/102776191" target="_blank"  rel="noopener" title="最近程序员频繁被抓，如何避免面向监狱编程！？">
		<h4 class="text-truncate oneline">
				最近程序员频繁被抓，如何避免面向监狱编程！？		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-28</span>
				<span class="read-num hover-hide">
					阅读数 
					5万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/hollis_chuang/article/details/102776191" target="_blank" rel="noopener" title="最近程序员频繁被抓，如何避免面向监狱编程！？">
				<span class="desc oneline">最近，有关程序员因为参与某些项目开发导致被起诉，甚至被判刑的事件发生的比较多：
某程序员因为接了个外包，帮别人写了个软件，结果这个软件被用于赌博导致被抓。
某公司利用爬虫抓取用户信息，最后被发现，导致...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/petterp/article/details/102779131","strategy":"BlogCommendHotData","index":"37"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/petterp/article/details/102779131","strategy":"BlogCommendHotData","index":"37"}'>
	<div class="content">
		<a href="https://blog.csdn.net/petterp/article/details/102779131" target="_blank"  rel="noopener" title="一文搞懂什么是TCP/IP协议">
		<h4 class="text-truncate oneline">
				一文搞懂什么是TCP/IP协议		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-28</span>
				<span class="read-num hover-hide">
					阅读数 
					1万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/petterp/article/details/102779131" target="_blank" rel="noopener" title="一文搞懂什么是TCP/IP协议">
				<span class="desc oneline">什么是TCP/IP协议?

计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法.比如如何探测到通信目标.由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先确定.不同的硬件...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/m0_37907797/article/details/102781027","strategy":"BlogCommendHotData","index":"38"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/m0_37907797/article/details/102781027","strategy":"BlogCommendHotData","index":"38"}'>
	<div class="content">
		<a href="https://blog.csdn.net/m0_37907797/article/details/102781027" target="_blank"  rel="noopener" title="大学四年自学走来，这些私藏的实用工具/学习网站我贡献出来了">
		<h4 class="text-truncate oneline">
				大学四年自学走来，这些私藏的实用工具/学习网站我贡献出来了		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-28</span>
				<span class="read-num hover-hide">
					阅读数 
					10万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/m0_37907797/article/details/102781027" target="_blank" rel="noopener" title="大学四年自学走来，这些私藏的实用工具/学习网站我贡献出来了">
				<span class="desc oneline">大学四年，看课本是不可能一直看课本的了，对于学习，特别是自学，善于搜索网上的一些资源来辅助，还是非常有必要的，下面我就把这几年私藏的各种资源，网站贡献出来给你们。主要有：电子书搜索、实用工具、在线视频...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
<div class="recommend-item-box type_blog clearfix" data-report-view='{"mod":"popu_614","dest":"https://blog.csdn.net/qing_gee/article/details/102781522","strategy":"BlogCommendHotData","index":"39"}' data-report-click='{"mod":"popu_614","dest":"https://blog.csdn.net/qing_gee/article/details/102781522","strategy":"BlogCommendHotData","index":"39"}'>
	<div class="content">
		<a href="https://blog.csdn.net/qing_gee/article/details/102781522" target="_blank"  rel="noopener" title="学习 Java 应该关注哪些网站？">
		<h4 class="text-truncate oneline">
				学习 Java 应该关注哪些网站？		</h4>
		<div class="info-box d-flex align-content-center">
			<p class="date-and-readNum oneline">
				<span class="date hover-show">10-28</span>
				<span class="read-num hover-hide">
					阅读数 
					1万+</span>
				</p>
			</div>
		</a>
		<p class="content">
			<a href="https://blog.csdn.net/qing_gee/article/details/102781522" target="_blank" rel="noopener" title="学习 Java 应该关注哪些网站？">
				<span class="desc oneline">经常有一些读者问我：“二哥，学习 Java 应该关注哪些网站？”，我之前的态度一直是上知乎、上搜索引擎搜一下不就知道了。但读者对我这个态度很不满意，他们说，“我在问你，又不是问知乎，问搜索引擎。”你还...</span>
			</a>
			<span class="blog_title_box oneline no-title">
									<span class="type-show type-show-blog type-show-after">博文</span>
												</span>
		</p>
	</div>
	</div>

	
	
                    <div class="recommend-item-box type_hot_word">
                                        <div class="content clearfix">
                        <div class="float-left">
                                                <span>
                            <a href="https://www.csdn.net/gather_19/NtjaMgwsLWRvd25sb2Fk.html" target="_blank">
                            c#俄罗斯方块源码</a>
                        </span>
                                                <span>
                            <a href="https://www.csdn.net/gather_1b/NtjaMgxsLWRvd25sb2Fk.html" target="_blank">
                            c# linq原理</a>
                        </span>
                                                <span>
                            <a href="https://www.csdn.net/gather_1a/NtjaMgysLWRvd25sb2Fk.html" target="_blank">
                            c# 装箱有什么用</a>
                        </span>
                                                <span>
                            <a href="https://www.csdn.net/gather_12/NtjaMgzsLWRvd25sb2Fk.html" target="_blank">
                            c#集合 复制</a>
                        </span>
                                                <span>
                            <a href="https://www.csdn.net/gather_16/NtjaMg0sLWRvd25sb2Fk.html" target="_blank">
                            c# 一个字符串分组</a>
                        </span>
                                                <span>
                            <a href="https://www.csdn.net/gather_26/NtjaMg1sLWJsb2cO0O0O.html" target="_blank">
                            c++和c#哪个就业率高</a>
                        </span>
                                                <span>
                            <a href="https://www.csdn.net/gather_1c/NtjaMg2sLWRvd25sb2Fk.html" target="_blank">
                            c# 批量动态创建控件</a>
                        </span>
                                                <span>
                            <a href="https://www.csdn.net/gather_1a/NtjaMg3sLWRvd25sb2Fk.html" target="_blank">
                            c# 模块和程序集的区别</a>
                        </span>
                                                <span>
                            <a href="https://www.csdn.net/gather_14/NtjaMg4sLWRvd25sb2Fk.html" target="_blank">
                            c# gmap 截图</a>
                        </span>
                                                <span>
                            <a href="https://www.csdn.net/gather_14/NtjaQgwsLWRvd25sb2Fk.html" target="_blank">
                            c# 验证码图片生成类</a>
                        </span>
                                                </div>
                    </div>
                                        </div>
                                    <div class="recommend-loading-box">
                    <img src='https://csdnimg.cn/release/phoenix/images/feedLoading.gif'>
                </div>
                <div class="recommend-end-box">
                    <p class="text-center">没有更多推荐了，<a href="https://blog.csdn.net/" class="c-blue c-blue-hover c-blue-focus">返回首页</a></p>
                </div>
            </div>
                            <div class="template-box">
                    <span>©️2019 CSDN</span><span class="point"></span>
                <span>皮肤主题: 技术黑板</span>
                <span> 设计师:
                                            CSDN官方博客                                    </span>
                </div>
                    </main>
        <aside class="blog_container_aside">
	<!--主页引入-->
            <div id="asideProfile" class="aside-box">
    <!-- <h3 class="aside-title">个人资料</h3> -->
    <div class="profile-intro d-flex">
        <div class="avatar-box d-flex justify-content-center flex-column">
            <a href="https://blog.csdn.net/a649344475">
                <img src="https://profile.csdnimg.cn/5/7/0/3_a649344475" class="avatar_pic" username='a649344475'>
                                    <img src="https://g.csdnimg.cn/static/user-reg-year/1x/7.png" class="user-years">
                            </a>
            
        </div>
        <div class="user-info d-flex flex-column profile-intro-name-box">
            <div>
                                <span class="name csdn-tracking-statistics tracking-click "   data-report-click='{"mod":"popu_379"}' username='a649344475'>
                    <a href="https://blog.csdn.net/a649344475" class="" id="uid" title='医然'>
                        医然                    </a>
                </span>
                            </div>
            <div class="profile-intro-name-boxFooter">
                                    <div class="personal-home-page" style='right:-96px;'><a target="_blank" href="https://me.csdn.net/a649344475">TA的个人主页 ></a></div>
                                <div class="profile-intro-name-boxOpration">
                                            <div class='profile-personal-letter'>
                            <a id="profile-personal-alink" class='profile-personal-alink' href=https://im.csdn.net/im/main.html?userName=a649344475 target="_blank" rel="noopener">私信</a>
                        </div>
                        <div class="opt-box d-flex  flex-column">
                            <span class="csdn-tracking-statistics tracking-click" data-report-click='{"mod":"popu_379"}'>
                                                                    <a class="btn btn-sm btn-red-hollow attention" id="btnAttent" style='padding:0;'>关注</a>
                                                            </span>
                        </div>
                                    </div>
            </div>
        </div>
    </div>
    <div class="data-info d-flex item-tiling">
                <dl class="text-center" title="52">
                            <dt><a href="https://blog.csdn.net/a649344475?t=1">原创</a></dt>
                <dd><a href="https://blog.csdn.net/a649344475?t=1"><span class="count">52</span></a></dd>
                    </dl>
        <dl class="text-center" id="fanBox" title="29">
            <dt>粉丝</dt>
            <dd><span class="count" id="fan">29</span></dd>
        </dl>
        <dl class="text-center" title="26">
            <dt>获赞</dt>
            <dd><span class="count">26</span></dd>
        </dl>
        <dl class="text-center" title="11">
            <dt>评论</dt>
            <dd><span class="count">11</span></dd>
        </dl>
        <dl class="text-center" title="69983">
            <dt>访问</dt>
            <dd><span class="count">6万+</span></dd>
        </dl>
    </div>
    <div class="grade-box clearfix">
        <dl class="aside-box-footerClassify">
            <dt>等级:</dt>
            <dd>
                <a href="https://blog.csdn.net/home/help.html#level" title="4级,点击查看等级说明" target="_blank">
                    <svg class="icon icon-level" aria-hidden="true">
                        <use xlink:href="#csdnc-bloglevel-4"></use>
                    </svg>
                </a>
            </dd>
        </dl>
        <dl>
            <dt>周排名:</dt>
            <dd>
                <a class="grade-box-rankA" href="https://blog.csdn.net/rank/writing_rank" target="_blank">
                    2万+                </a>
            </dd>
        </dl>
        <dl>
            <dt>积分:</dt>
            <dd title="1199">
                1199            </dd>
        </dl>
        <dl title="62339">
            <dt>总排名:</dt>
            <dd>
                <a class="grade-box-rankA" href="https://blog.csdn.net/rank/writing_rank_total" target="_blank">
                    6万+                </a>
            </dd>
        </dl>
    </div>
    <div class="aside-box-footer">
                    <div class="badge-box d-flex">
                <div class="profile-medal">勋章:</div>
                <div class="badge d-flex">
                                                                                                        <div class="icon-badge" title="1024勋章">
                                    <div class="mouse-box">
                                        <img src="https://g.csdnimg.cn/static/user-medal/1024.png" alt="">
                                        <div class="icon-arrow"></div>
                                    </div>
                                    <div class="grade-detail-box">
                                        <div class="pos-box">
                                            <div class="left-box d-flex justify-content-center align-items-center flex-column">
                                                <img src="https://g.csdnimg.cn/static/user-medal/1024.png" alt="">
                                                <p>1024勋章</p>
                                            </div>
                                            <div class="right-box">
                                                #1024程序员节#活动勋章，当日发布原创博客即可获得                                            </div>
                                        </div>
                                    </div>
                                </div>
                                                                                                                <div class="icon-badge" title="勤写标兵Lv1">
                                    <div class="mouse-box">
                                        <img src="https://g.csdnimg.cn/static/user-medal/qixiebiaobing-1.png" alt="">
                                        <div class="icon-arrow"></div>
                                    </div>
                                    <div class="grade-detail-box">
                                        <div class="pos-box">
                                            <div class="left-box d-flex justify-content-center align-items-center flex-column">
                                                <img src="https://g.csdnimg.cn/static/user-medal/qixiebiaobing-1.png" alt="">
                                                <p>勤写标兵Lv1</p>
                                            </div>
                                            <div class="right-box">
                                                授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。                                            </div>
                                        </div>
                                    </div>
                                </div>
                                                                                        </div>
                <script>
                    (function($) {
                        setTimeout(function() {
                            $('div.icon-badge.show-moment').removeClass('show-moment');
                        }, 5000);
                    })(window.jQuery)
                </script>
            </div>
                
    </div>
</div>
<script>
    function watchBtnChange(flag, username) {
        $('span.blog-expert-button-follow').each(function(index) {
            if (flag) {
                if ($(this).attr("data-name") == username) {
                    $(this).html('<span class="hover-hide">已关注</span><span class="hover-show">取消</span>').removeClass('btn-red-follow').addClass('btn-gray-follow attented');
                }
            } else {
                if ($(this).attr("data-name") == username) {
                    $(this).html("关注").addClass('btn-red-follow').removeClass('btn-gray-follow attented');
                }
            }
        })
        if (username == $('p.csdn-tracking-statistics').attr("username")) {
            if (flag) {
                $('#btnAttent').addClass("attented").text("已关注").removeClass('btn-red-hollow').addClass('btn-gray-hollow');
                changeFans(1)
            } else {
                $('#btnAttent').text("关注").addClass('btn-red-hollow').removeClass('btn-gray-hollow attented');
                changeFans(-1)
            }
        }


    }

    function changeFans(num) {
        if ($('#fan').text().indexOf('+') < 0) {
            $('#fan').text(parseInt($('#fan').text()) + num);
        } else {
            $('#fanBox').attr('title', parseInt($('#fanBox').attr('title')) + num);
        }
    }
    window.csdn = window.csdn ? window.csdn : {};
    window.csdn.watchBtnChange = watchBtnChange;
</script><div class="csdn-tracking-statistics mb8 box-shadow" data-pid="blog" data-report-click='{"mod":"popu_4"}' data-report-view='{"mod":"popu_4"}' style="height:250px;">
    <div class="aside-content text-center" id="cpro_u2734133">
      <div id="kp_box_56" data-pid="56"><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 博客内页左上视窗-20181120 -->
<ins class="adsbygoogle"
     style="display:inline-block;width:300px;height:250px"
     data-ad-client="ca-pub-1076724771190722"
     data-ad-slot="7700527946"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=56&a=703&c=0&k=&d=1&t=3&u=6b7364f8c0454470a53a4d086b8bbb10"></div>    </div>
</div>
<div id="asideNewArticle" class="aside-box">
    <h3 class="aside-title">最新文章</h3>
    <div class="aside-content">
        <ul class="inf_list clearfix csdn-tracking-statistics tracking-click" data-mod="popu_382">
                        <li class="clearfix">
                <a href="https://blog.csdn.net/a649344475/article/details/102844033" target="_blank" >
                                        JavaScript 下载文件并保持原文件名称                </a>
            </li>
                        <li class="clearfix">
                <a href="https://blog.csdn.net/a649344475/article/details/88357066" target="_blank" >
                                        Python 解析二维码 输出文本                </a>
            </li>
                        <li class="clearfix">
                <a href="https://blog.csdn.net/a649344475/article/details/85229795" target="_blank" >
                                        python 打包 exe                </a>
            </li>
                        <li class="clearfix">
                <a href="https://blog.csdn.net/a649344475/article/details/83825377" target="_blank" >
                                        Python FTP 操作                </a>
            </li>
                        <li class="clearfix">
                <a href="https://blog.csdn.net/a649344475/article/details/83348191" target="_blank" >
                                        TensorFlow iris 数据分类                </a>
            </li>
                    </ul>
    </div>
</div>
    <div id="asideCategory" class="aside-box flexible-box"
         style="">
    <h3 class="aside-title">分类专栏</h3>
    <div class="aside-content">
        <ul>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/9475064">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151132530.png" alt="">
                                                <span class="title oneline">JavaScript</span>
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7760071">
                                                    <img src="https://img-blog.csdnimg.cn/20190918135101160.png" alt="">
                                                <span class="title oneline">python</span>
                                                    <span class="count float-right">32篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7769627">
                                                    <img src="https://img-blog.csdnimg.cn/2019092715111047.png" alt="">
                                                <span class="title oneline">git</span>
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7774054">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140158853.png" alt="">
                                                <span class="title oneline">MySQL</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7777084">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140129601.png" alt="">
                                                <span class="title oneline">django</span>
                                                    <span class="count float-right">3篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7781702">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151124774.png" alt="">
                                                <span class="title oneline">html</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7781703">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151124774.png" alt="">
                                                <span class="title oneline">css</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7786303">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140158853.png" alt="">
                                                <span class="title oneline">爬虫</span>
                                                    <span class="count float-right">7篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7786786">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140129601.png" alt="">
                                                <span class="title oneline">数据库</span>
                                                    <span class="count float-right">3篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7789377">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151117521.png" alt="">
                                                <span class="title oneline">系统</span>
                                                    <span class="count float-right">6篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7790252">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140158853.png" alt="">
                                                <span class="title oneline">运维</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7804196">
                                                    <img src="https://img-blog.csdnimg.cn/2019092715111047.png" alt="">
                                                <span class="title oneline">可视化</span>
                                                    <span class="count float-right">4篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7810494">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151101105.png" alt="">
                                                <span class="title oneline">Windows</span>
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7815399">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140145169.png" alt="">
                                                <span class="title oneline">汉字</span>
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7815527">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151101105.png" alt="">
                                                <span class="title oneline">数据分析</span>
                                                    <span class="count float-right">7篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7816189">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151101105.png" alt="">
                                                <span class="title oneline">抓包解包</span>
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7825832">
                                                    <img src="https://img-blog.csdnimg.cn/2019091813595558.png" alt="">
                                                <span class="title oneline">Matplotlib</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7825839">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151117521.png" alt="">
                                                <span class="title oneline">numpy</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7826757">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151124774.png" alt="">
                                                <span class="title oneline">文件</span>
                                                    <span class="count float-right">3篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7833625">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151026427.png" alt="">
                                                <span class="title oneline">机器学习</span>
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7841522">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151132530.png" alt="">
                                                <span class="title oneline">图片</span>
                                                    <span class="count float-right">2篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7841675">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140053667.png" alt="">
                                                <span class="title oneline">websocket</span>
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7895112">
                                                    <img src="https://img-blog.csdnimg.cn/2019091813595558.png" alt="">
                                                <span class="title oneline">Tornado</span>
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/7898337">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140158853.png" alt="">
                                                <span class="title oneline">异步</span>
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/8055925">
                                                    <img src="https://img-blog.csdnimg.cn/20190918135101160.png" alt="">
                                                <span class="title oneline">树莓派</span>
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/8093888">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151124774.png" alt="">
                                                <span class="title oneline">算法</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/8093893">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140158853.png" alt="">
                                                <span class="title oneline">算法与数据结构</span>
                                                    <span class="count float-right">5篇</span>
                                            </a>
                </li>
                            <li class="">
                    <a class="clearfix"
                       href="https://blog.csdn.net/a649344475/article/category/8102868">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151124774.png" alt="">
                                                <span class="title oneline">音视频</span>
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                    </ul>
    </div>
        <p class="text-center">
        <a class="btn btn-link-blue flexible-btn" data-fbox="aside-archive">展开</a>
    </p>
    </div>
<div id="asideArchive" class="aside-box flexible-box">
    <h3 class="aside-title">归档</h3>
    <div class="aside-content">
        <ul class="archive-list">
                        <!--归档统计-->
            <li>
                <a href="https://blog.csdn.net/a649344475/article/month/2019/10">
                    2019年10月                    <span class="count float-right">1篇</span>
                </a>
            </li>
                        <!--归档统计-->
            <li>
                <a href="https://blog.csdn.net/a649344475/article/month/2019/03">
                    2019年3月                    <span class="count float-right">1篇</span>
                </a>
            </li>
                        <!--归档统计-->
            <li>
                <a href="https://blog.csdn.net/a649344475/article/month/2018/12">
                    2018年12月                    <span class="count float-right">1篇</span>
                </a>
            </li>
                        <!--归档统计-->
            <li>
                <a href="https://blog.csdn.net/a649344475/article/month/2018/11">
                    2018年11月                    <span class="count float-right">1篇</span>
                </a>
            </li>
                        <!--归档统计-->
            <li>
                <a href="https://blog.csdn.net/a649344475/article/month/2018/10">
                    2018年10月                    <span class="count float-right">4篇</span>
                </a>
            </li>
                        <!--归档统计-->
            <li>
                <a href="https://blog.csdn.net/a649344475/article/month/2018/09">
                    2018年9月                    <span class="count float-right">7篇</span>
                </a>
            </li>
                        <!--归档统计-->
            <li>
                <a href="https://blog.csdn.net/a649344475/article/month/2018/08">
                    2018年8月                    <span class="count float-right">7篇</span>
                </a>
            </li>
                        <!--归档统计-->
            <li>
                <a href="https://blog.csdn.net/a649344475/article/month/2018/07">
                    2018年7月                    <span class="count float-right">21篇</span>
                </a>
            </li>
                        <!--归档统计-->
            <li>
                <a href="https://blog.csdn.net/a649344475/article/month/2018/06">
                    2018年6月                    <span class="count float-right">10篇</span>
                </a>
            </li>
                    </ul>
    </div>
        <p class="text-center">
        <a class="btn btn-link-blue flexible-btn" data-fbox="aside-archive">展开</a>
    </p>
    </div>
<div id="asideHotArticle" class="aside-box">
	<h3 class="aside-title">热门文章</h3>
	<div class="aside-content">
		<ul class="hotArticle-list csdn-tracking-statistics tracking-click" data-report-view='{"mod":"popu_521"}'>
							<li>

					<a href="https://blog.csdn.net/a649344475/article/details/81110957" >
                                                python 抓包与解包                    </a>
					<p class="read">阅读数 <span>10871</span></p>
				</li>
							<li>

					<a href="https://blog.csdn.net/a649344475/article/details/81162381" >
                                                Python3 读取Word文件                    </a>
					<p class="read">阅读数 <span>8050</span></p>
				</li>
							<li>

					<a href="https://blog.csdn.net/a649344475/article/details/81106590" >
                                                python 繁体字与简体字互相转换                    </a>
					<p class="read">阅读数 <span>7766</span></p>
				</li>
							<li>

					<a href="https://blog.csdn.net/a649344475/article/details/81083022" >
                                                Windows服务安装与卸载                    </a>
					<p class="read">阅读数 <span>5867</span></p>
				</li>
							<li>

					<a href="https://blog.csdn.net/a649344475/article/details/82943215" >
                                                Python 视频转换为图片 与 图片转换为视频                    </a>
					<p class="read">阅读数 <span>3477</span></p>
				</li>
					</ul>
	</div>
</div>
<div id="asideNewComments" class="aside-box">
    <h3 class="aside-title">最新评论</h3>
    <div class="aside-content">
        <ul class="newcomment-list">
                        <li>
                <a class="title text-truncate" target="_blank" href="https://blog.csdn.net/a649344475/article/details/81110957#comments">python 抓包与解包</a>
                <p class="comment ellipsis">
                    <a href="https://my.csdn.net/dashuaaaa" class="user-name" target="_blank">dashuaaaa：</a>[reply]qq_42098769[/reply]
https://blog.csdn.net/qq_23977687/article/details/88046257  我是看这个安装的                </p>
            </li>
                        <li>
                <a class="title text-truncate" target="_blank" href="https://blog.csdn.net/a649344475/article/details/81162381#comments">Python3 读取Word文件</a>
                <p class="comment ellipsis">
                    <a href="https://my.csdn.net/s13018705814" class="user-name" target="_blank">s13018705814：</a>[reply]qq_38669698[/reply]
把tt.docx换成文件名xx.doc不就好了吗                </p>
            </li>
                        <li>
                <a class="title text-truncate" target="_blank" href="https://blog.csdn.net/a649344475/article/details/81234825#comments">Python Websocket</a>
                <p class="comment ellipsis">
                    <a href="https://my.csdn.net/weixin_43502949" class="user-name" target="_blank">weixin_43502949：</a>你好 我在浏览器页面点击连接时返回给我的是坏的请求(bad request),我一直搞不懂，不知道您是否可以帮忙解决一下                </p>
            </li>
                        <li>
                <a class="title text-truncate" target="_blank" href="https://blog.csdn.net/a649344475/article/details/81083022#comments">Windows服务安装与卸载</a>
                <p class="comment ellipsis">
                    <a href="https://my.csdn.net/sanqianheijia" class="user-name" target="_blank">sanqianheijia：</a>sc命令确实好使，使用InstallUtil.exe有时候装不上，一般电脑都既有64位又有32位，以及多个.net版本的InstallUtil.exe，顺便补充一下sc删除命令(按上面的程序名)为  sc delete inforcenter                </p>
            </li>
                        <li>
                <a class="title text-truncate" target="_blank" href="https://blog.csdn.net/a649344475/article/details/81162381#comments">Python3 读取Word文件</a>
                <p class="comment ellipsis">
                    <a href="https://my.csdn.net/qq_38669698" class="user-name" target="_blank">qq_38669698：</a>楼主，如何读取.doc结尾的word文件？                </p>
            </li>
                    </ul>
    </div>
</div>
    	<div id="asideFooter">
			
		<div class="aside-box">
			<div id="kp_box_57" data-pid="57"><script type="text/javascript">
    (function() {
        var s = "_" + Math.random().toString(36).slice(2);
        document.write('<div style="" id="' + s + '"></div>');
        (window.slotbydup = window.slotbydup || []).push({
            id: "u3163270",
            container:  s
        });
    })();
</script>
<!-- 多条广告如下脚本只需引入一次 -->
<script type="text/javascript" src="//cpro.baidustatic.com/cpro/ui/c.js" async="async" defer="defer" ></script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=57&a=77&c=0&k=&d=1&t=3&u=2e9835968ad444eeb172ea3e537c60ba"></div>		</div>
				<div class="aside-box">
			<div class="persion_article">
			</div>
		</div>
	</div>
</aside>
<script src="https://csdnimg.cn/pubfooter/js/publib_footer-1.0.3.js" data-isfootertrack="false" type="text/javascript"></script>
<script>
	$("a.flexible-btn").click(function(){
		$(this).parents('div.aside-box').removeClass('flexible-box');
		$(this).remove();
	})
</script>
<script src="https://g.csdnimg.cn/user-tooltip/1.9/user-tooltip.js"  type="text/javascript"></script>
    </div>
                <div class="recommend-right  align-items-stretch clearfix">
      <aside class="recommend-right_aside">
        <div id="recommend-right" style="height:100%;">
          <div class='aside-box groupfile d-flex flex-column' id="groupfile">
            <h3 class="aside-title">目录</h3>
            <div class="align-items-stretch group_item">
              <div class="toc-container">
              <div class="pos-box">
                <div class="icon-arrow"></div>
                <div class="scroll-box">
                  <div class="toc-box"></div>
                </div>
              </div>
            </div>
            </div>
            
          </div>
          <div class='aside-box kind_person d-flex flex-column'>
              <h3 class="aside-title">分类专栏</h3>
              <div class="align-items-stretch kindof_item">
                <div class="aside-content">
                  <ul>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/9475064">
                                                                        <img src="https://img-blog.csdnimg.cn/20190918140012416.png" alt="">
                                                                    <span class="title oneline">JavaScript</span>
                                                                        <span class="count float-right">1篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7760071">
                                                                        <img src="https://img-blog.csdnimg.cn/20190927151043371.png" alt="">
                                                                    <span class="title oneline">python</span>
                                                                        <span class="count float-right">32篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7769627">
                                                                        <img src="https://img-blog.csdnimg.cn/20190918135101160.png" alt="">
                                                                    <span class="title oneline">git</span>
                                                                        <span class="count float-right">1篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7774054">
                                                                        <img src="https://img-blog.csdnimg.cn/2019091813595558.png" alt="">
                                                                    <span class="title oneline">MySQL</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7777084">
                                                                        <img src="https://img-blog.csdnimg.cn/20190927151043371.png" alt="">
                                                                    <span class="title oneline">django</span>
                                                                        <span class="count float-right">3篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7781702">
                                                                        <img src="https://img-blog.csdnimg.cn/20190927151117521.png" alt="">
                                                                    <span class="title oneline">html</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7781703">
                                                                        <img src="https://img-blog.csdnimg.cn/20190927151026427.png" alt="">
                                                                    <span class="title oneline">css</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7786303">
                                                                        <img src="https://img-blog.csdnimg.cn/20190927151124774.png" alt="">
                                                                    <span class="title oneline">爬虫</span>
                                                                        <span class="count float-right">7篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7786786">
                                                                        <img src="https://img-blog.csdnimg.cn/20190927151101105.png" alt="">
                                                                    <span class="title oneline">数据库</span>
                                                                        <span class="count float-right">3篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7789377">
                                                                        <img src="https://img-blog.csdnimg.cn/20190918140158853.png" alt="">
                                                                    <span class="title oneline">系统</span>
                                                                        <span class="count float-right">6篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7790252">
                                                                        <img src="https://img-blog.csdnimg.cn/20190918140145169.png" alt="">
                                                                    <span class="title oneline">运维</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7804196">
                                                                        <img src="https://img-blog.csdnimg.cn/20190918135101160.png" alt="">
                                                                    <span class="title oneline">可视化</span>
                                                                        <span class="count float-right">4篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7810494">
                                                                        <img src="https://img-blog.csdnimg.cn/20190918140129601.png" alt="">
                                                                    <span class="title oneline">Windows</span>
                                                                        <span class="count float-right">1篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7815399">
                                                                        <img src="https://img-blog.csdnimg.cn/20190927151117521.png" alt="">
                                                                    <span class="title oneline">汉字</span>
                                                                        <span class="count float-right">1篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7815527">
                                                                        <img src="https://img-blog.csdnimg.cn/20190927151117521.png" alt="">
                                                                    <span class="title oneline">数据分析</span>
                                                                        <span class="count float-right">7篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7816189">
                                                                        <img src="https://img-blog.csdnimg.cn/20190918135101160.png" alt="">
                                                                    <span class="title oneline">抓包解包</span>
                                                                        <span class="count float-right">1篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7825832">
                                                                        <img src="https://img-blog.csdnimg.cn/20190918140053667.png" alt="">
                                                                    <span class="title oneline">Matplotlib</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7825839">
                                                                        <img src="https://img-blog.csdnimg.cn/20190927151026427.png" alt="">
                                                                    <span class="title oneline">numpy</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7826757">
                                                                        <img src="https://img-blog.csdnimg.cn/2019092715111047.png" alt="">
                                                                    <span class="title oneline">文件</span>
                                                                        <span class="count float-right">3篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7833625">
                                                                        <img src="https://img-blog.csdnimg.cn/20190918140129601.png" alt="">
                                                                    <span class="title oneline">机器学习</span>
                                                                        <span class="count float-right">1篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7841522">
                                                                        <img src="https://img-blog.csdnimg.cn/20190918140158853.png" alt="">
                                                                    <span class="title oneline">图片</span>
                                                                        <span class="count float-right">2篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7841675">
                                                                        <img src="https://img-blog.csdnimg.cn/20190927151053287.png" alt="">
                                                                    <span class="title oneline">websocket</span>
                                                                        <span class="count float-right">1篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7895112">
                                                                        <img src="https://img-blog.csdnimg.cn/20190927151124774.png" alt="">
                                                                    <span class="title oneline">Tornado</span>
                                                                        <span class="count float-right">1篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/7898337">
                                                                        <img src="https://img-blog.csdnimg.cn/20190918140158853.png" alt="">
                                                                    <span class="title oneline">异步</span>
                                                                        <span class="count float-right">1篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/8055925">
                                                                        <img src="https://img-blog.csdnimg.cn/20190927151132530.png" alt="">
                                                                    <span class="title oneline">树莓派</span>
                                                                        <span class="count float-right">1篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/8093888">
                                                                        <img src="https://img-blog.csdnimg.cn/20190918135101160.png" alt="">
                                                                    <span class="title oneline">算法</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/8093893">
                                                                        <img src="https://img-blog.csdnimg.cn/20190927151117521.png" alt="">
                                                                    <span class="title oneline">算法与数据结构</span>
                                                                        <span class="count float-right">5篇</span>
                                                                </a>
                          </li>
                                                <li class="">
                              <a class="clearfix"
                                href="https://blog.csdn.net/a649344475/article/category/8102868">
                                                                        <img src="https://img-blog.csdnimg.cn/20190927151132530.png" alt="">
                                                                    <span class="title oneline">音视频</span>
                                                                        <span class="count float-right">1篇</span>
                                                                </a>
                          </li>
                                        </ul>
              </div>
              </div>
              
          </div>
      </div>
      </aside>
      
    </div>
    </div>

<div class="mask-dark"></div>
<div class="tool-box vertical">
    	<ul class="meau-list">
		<li class="btn-like-box long-width">
			<button class=" long-height hover-box btn-like " title="点赞">
				<svg class="icon active hover-hide" aria-hidden="true">
					<use xlink:href="#csdnc-thumbsup-ok"></use>
				</svg>
				<svg class="icon no-active hover-hide" aria-hidden="true">
					<use xlink:href="#csdnc-thumbsup"></use>
				</svg>
				<span class="hover-show text-box text">
					<span class="no-active">点赞</span>
					<span class="active">取消点赞</span>
				</span>
				<p id="supportCount">2</p>
			</button>
		</li>
		<li class="to-commentBox" id = 'sharePost' data-report-click='{"mod":"popu_794","dest":"https://blog.csdn.net/a649344475/article/details/81234825"}'>
			<a class="btn-comments low-height hover-box" >
				<svg class="icon hover-hide" aria-hidden="true">
					<use xlink:href="#csdnc-share"></use>
				</svg>
				<span class="hover-show text">海报</span>
				<p class="">
				</p>
			</a>
			<a href="https://blogdev.blog.csdn.net/article/details/99646245" target="view_window">
				<div class = 'shareSuggest' id = 'shareSuggest'>
					分享海报说明
					<svg class="shareIcon" aria-hidden="true">
						<use xlink:href="#csdnc-help"></use>
					</svg>
					<div class = 'shareTriangle'></div>
				</div>
			</a>
		</li>
		<li class="to-commentBox">
						<a class="btn-comments long-height hover-box" title="写评论" href="#commentBox">
				<svg class="icon hover-hide" aria-hidden="true">
					<use xlink:href="#csdnc-comments"></use>
				</svg>
				<span class="hover-show text">评论</span>
				<p class="">
						1				</p>
			</a>
		</li>
		<li class="toc-container-box" id="liTocBox">
			<a class="btn-toc low-height hover-box btn-comments" title="目录">
				<svg class="icon hover-hide" aria-hidden="true">
					<use xlink:href="#csdnc-contents"></use>
				</svg>
				<span class="hover-show text">目录</span>
			</a>
			<div class="toc-container">
				<div class="pos-box">
					<div class="icon-arrow"></div>
					<div class="scroll-box">
						<div class="toc-box"></div>
					</div>
				</div>
				<div class="opt-box">
					<button class="btn-opt prev nomore" title="向上">
						<svg class="icon" aria-hidden="true">
							<use xlink:href="#csdnc-chevronup"></use>
						</svg>
					</button>
					<button class="btn-opt next">
						<svg class="icon" aria-hidden="true">
							<use xlink:href="#csdnc-chevrondown"></use>
						</svg>
					</button>
				</div>
			</div>

		</li>
		<li>
			<a class="btn-bookmark low-height hover-box btn-comments" title="收藏">
				<svg class="icon active hover-hide" aria-hidden="true">
					<use xlink:href="#csdnc-bookmark-ok"></use>
				</svg>
				<svg class="icon no-active hover-hide" aria-hidden="true">
					<use xlink:href="#csdnc-bookmark"></use>
				</svg>
					<span class="hover-show text">收藏</span>
				<!-- <span class="hover-show text-box text">
					<span class="no-active">收藏</span>
					<span class="active">取消收藏</span>
				</span> -->
			</a>
		</li>
		<li class="bdsharebuttonbox">
			<div class="weixin-qr btn-comments low-height hover-box" >
				<a id="btnQrShare" class="bds_weixin clear-share-style" title="手机看"></a>
				<svg class="icon hover-hide" aria-hidden="true">
					<use xlink:href="#csdnc-usephone"></use>
				</svg>
				<span class="hover-show text text3">
					手机看
				</span>
			</div>
		</li>
							<li class="widescreen-hide">
				<a class="prev btn-comments low-height hover-box" href="https://blog.csdn.net/a649344475/article/details/81195108" title="python 下载文本_图片_视频">
					<svg class="icon hover-hide" aria-hidden="true">
						<use xlink:href="#csdnc-chevronleft"></use>
					</svg>
					<span class="hover-show text text3">上一篇</span>
				</a>
			</li>
								<li class="widescreen-hide">
			<a class="next btn-comments hover-box low-height" href="https://blog.csdn.net/a649344475/article/details/81273382" title="Python 数据库连接池">
				<svg class="icon hover-hide" aria-hidden="true">
					<use xlink:href="#csdnc-chevronright"></use>
				</svg>
				<span class="hover-show text text3">下一篇</span>
			</a>
		</li>
						<!-- 宽屏更多按钮 -->
		<li class="widescreen-more">
			<a class="btn-comments chat-ask-button low-height hover-box" title="快问" href="#chatqa">
				<svg class="icon hover-hide" aria-hidden="true">
					<use xlink:href="#csdnc-more"></use>
				</svg>
				<span class="hover-show text">更多</span>
				
			</a>
			<ul class="widescreen-more-box">
													<li class="widescreen-more">
						<a class="btn-comments low-height hover-box" href="https://blog.csdn.net/a649344475/article/details/81195108" title="python 下载文本_图片_视频">
							<svg class="icon hover-hide" aria-hidden="true">
								<use xlink:href="#csdnc-chevronleft"></use>
							</svg>
							<span class="hover-show text text3">上一篇</span>
						</a>
					</li>
																<li class="widescreen-more">
					<a class="btn-comments hover-box low-height" href="https://blog.csdn.net/a649344475/article/details/81273382" title="Python 数据库连接池">
						<svg class="icon hover-hide" aria-hidden="true">
							<use xlink:href="#csdnc-chevronright"></use>
						</svg>
						<span class="hover-show text text3">下一篇</span>
					</a>
				</li>
							</ul>
		</li>
        		<li class="to-commentBox to-reward">
			<a class="btn-comments low-height hover-box" title="打赏">
				<svg class="hover-hide" width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
					<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
						<g transform="translate(-1398.000000, -486.000000)" fill-rule="nonzero">
							<g transform="translate(1398.000000, 486.000000)">
								<path d="M0,12 C0,16.287187 2.287187,20.2487113 6,22.3923048 C9.7128129,24.5358984 14.2871871,24.5358984 18,22.3923048 C21.712813,20.2487113 24,16.287187 24,12 C24,5.37258296 18.627417,0 12,0 C5.372583,0 0,5.37258296 0,12 Z" id="路径" fill-opacity="0.3" fill="#FF5A52"></path>
								<path d="M2.09340659,11.9505494 C2.09340659,15.4721673 3.97216734,18.7262766 7.02197798,20.4870856 C10.0717886,22.2478946 13.8293103,22.2478946 16.8791209,20.4870856 C19.9289316,18.7262766 21.8076923,15.4721673 21.8076923,11.9505494 C21.8076923,6.50659974 17.3944991,2.09340659 11.9505495,2.09340659 C6.50659977,2.09340659 2.09340659,6.50659974 2.09340659,11.9505494 Z" id="路径" fill="#F63D47"></path>
								<path d="M11.3005025,5.28638434 L12.7115578,5.28638434 L12.7115578,6.87854416 L14.1105528,6.87854416 C14.4,6.39607148 14.6592965,5.89550609 14.8884422,5.37081705 L16.1849246,5.82313519 C15.99799,6.23926787 15.7929648,6.58906055 15.5758794,6.88457507 L18,6.88457507 L18,9.84575109 L16.6733668,9.84575109 L16.6733668,8.03647857 L7.33869347,8.03647857 L7.33869347,9.85781291 L6,9.85781291 L6,6.87854416 L8.51457286,6.87854416 C8.31557789,6.52875147 8.08040201,6.1910206 7.80904523,5.86535155 L9.08140703,5.4009716 C9.39497488,5.80504246 9.67236181,6.29957695 9.92562814,6.88457507 L11.3065327,6.88457507 L11.3065327,5.28638434 L11.3005025,5.28638434 Z M12.8571429,13.9657994 C12.6552823,15.5675992 12.2332101,16.6234672 11.5848095,17.1394027 C10.8813559,17.8053195 9.1991844,18.2312662 6.54441188,18.4292415 L6,17.2233922 C8.22046642,17.1394027 9.68854339,16.8454395 10.3919969,16.3415024 C11.0098127,15.8735609 11.3768319,15.0456644 11.4930547,13.8578129 L12.8571429,13.9657994 Z M16.8571429,12.1435272 L16.8571429,15.9892245 L15.5161905,15.9892245 L15.5161905,13.3067319 L9.05523809,13.3067319 L9.05523809,16.1435272 L7.71428571,16.1435272 L7.71428571,12.1435272 L16.8571429,12.1435272 L16.8571429,12.1435272 Z M8.28571429,8.71495577 L15.7142857,8.71495577 L15.7142857,11.5720986 L8.28571429,11.5720986 L8.28571429,8.71495577 L8.28571429,8.71495577 Z M14.5714286,10.4292415 L14.5714286,9.28638434 L10,9.28638434 L10,10.4292415 L14.5714286,10.4292415 Z M12.9579832,16.1435272 C14.8187275,16.4853162 16.4993998,16.9018717 18,17.3931934 L17.2436975,18.4292415 C15.635054,17.8311106 13.9783914,17.3664911 12.2857143,17.0407235 L12.9579832,16.1435272 L12.9579832,16.1435272 Z" id="形状" fill="#FFFFFF"></path>
							</g>
						</g>
					</g>
				</svg>
				<span class="hover-show text">打赏</span>
			</a>
							<div id="reward" class="reward-box">
	<p class="rewad-title">打赏<span class="reward-close"><svg t="1567152543821" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10924" xmlns:xlink="http://www.w3.org/1999/xlink" width="12" height="12"><defs><style type="text/css"></style></defs><path d="M512 438.378667L806.506667 143.893333a52.032 52.032 0 1 1 73.6 73.621334L585.621333 512l294.485334 294.485333a52.074667 52.074667 0 0 1-73.6 73.642667L512 585.621333 217.514667 880.128a52.053333 52.053333 0 1 1-73.621334-73.642667L438.378667 512 143.893333 217.514667a52.053333 52.053333 0 1 1 73.621334-73.621334L512 438.378667z" fill="" p-id="10925"></path></svg></span></p>
	<dl>
		<dd><a href="javascript:;"><img src="https://profile.csdnimg.cn/5/7/0/3_a649344475" alt=""></a></dd>
		<dt>
			<p class="blog-name">医然</p>
			<p class="blog-discript">“你的鼓励将是我创作的最大动力”</p>
		</dt>
	</dl>
	<div class="money-box">
        			            	<span class="choosed choose_money" data-id="5">5C币</span>
			        							<span class="choose_money" data-id="10">10C币</span>
			        							<span class="choose_money" data-id="20">20C币</span>
			        							<span class="choose_money" data-id="50">50C币</span>
			        							<span class="choose_money" data-id="100">100C币</span>
			        							<span class="choose_money" data-id="200">200C币</span>
			        	</div>
	<div class="sure-box">
		<p class="is-have-money"><a class="reward-sure">确定</a></p>
	</div>
</div>

					</li>
        		<!--脉脉曝光外链-->
		<li>
			<a class="btn-maimai low-height hover-box btn-comments" title="脉脉" target="_blank" href="https://i.csdn.net/#/account/bind?utm_source=blogMaiMai">
				<svg class="hover-hide" width="24px" height="24px" viewBox="0 0 22 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
				<g  stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
					<g  transform="translate(-1355.000000, -433.000000)" fill-rule="nonzero">
						<g transform="translate(1355.000000, 433.000000)">
							<g >
								<path d="M11.9728475,0.371685864 L20.8834689,5.3746178 C21.5061808,5.72305759 21.8941017,6.38663874 21.8957175,7.10663874 L21.8957175,17.0074555 C21.8941017,17.7259476 21.5061808,18.3892775 20.8834689,18.7379686 L11.9728475,23.7405236 C11.3721356,24.0771518 10.6401695,24.0771518 10.0387119,23.7405236 L1.12858757,18.7379686 C0.504757062,18.3891518 0.11820339,17.725822 0.116587571,17.0074555 L0.116587571,7.10663874 C0.118451977,6.38663874 0.504757062,5.72305759 1.12858757,5.3746178 L10.0388362,0.371685864 C10.6401695,0.0341780105 11.371887,0.0341780105 11.9728475,0.371685864 L11.9728475,0.371685864 Z" id="路径" fill="#3FD9FF"></path>
								<path d="M11.1045311,1.93470157 C11.0426328,1.90102618 10.968678,1.90102618 10.9070282,1.93470157 L1.99777401,6.9373822 C1.936,6.97055497 1.89846328,7.03514136 1.8980904,7.10663874 L1.8980904,17.0074555 C1.8980904,17.0750576 1.936,17.1410262 1.99777401,17.1760838 L10.9070282,22.1777592 C10.968678,22.2124398 11.0426328,22.2124398 11.1045311,22.1777592 L20.0137853,17.1760838 C20.0749379,17.1419058 20.1139661,17.077445 20.1139661,17.0074555 L20.1139661,7.10663874 C20.1139661,7.03526702 20.0750621,6.97055497 20.0137853,6.9373822 L11.1045311,1.93470157 Z M11.9728475,0.371685864 L20.8834689,5.3746178 C21.5061808,5.72305759 21.8941017,6.38663874 21.8957175,7.10663874 L21.8957175,17.0074555 C21.8941017,17.7259476 21.5061808,18.3892775 20.8834689,18.7379686 L11.9728475,23.7405236 C11.3721356,24.0771518 10.6401695,24.0771518 10.0387119,23.7405236 L1.12858757,18.7379686 C0.504757062,18.3891518 0.11820339,17.725822 0.116587571,17.0074555 L0.116587571,7.10663874 C0.118451977,6.38663874 0.504757062,5.72305759 1.12858757,5.3746178 L10.0388362,0.371685864 C10.6401695,0.0341780105 11.371887,0.0341780105 11.9728475,0.371685864 L11.9728475,0.371685864 Z" id="形状" fill="#5296DE"></path>
							</g>
							<path d="M11.1045311,1.93470157 C11.0426328,1.90102618 10.968678,1.90102618 10.9070282,1.93470157 L1.99777401,6.9373822 C1.936,6.97055497 1.89846328,7.03514136 1.8980904,7.10663874 L1.8980904,17.0074555 C1.8980904,17.0750576 1.936,17.1410262 1.99777401,17.1760838 L10.9070282,22.1777592 C10.968678,22.2124398 11.0426328,22.2124398 11.1045311,22.1777592 L20.0137853,17.1760838 C20.0749379,17.1419058 20.1139661,17.077445 20.1139661,17.0074555 L20.1139661,7.10663874 C20.1139661,7.03526702 20.0750621,6.97055497 20.0137853,6.9373822 L11.1045311,1.93470157 Z" id="路径" fill="#3D5AB7"></path>
							<g  transform="translate(5.344633, 6.408377)">
								<rect fill="#F8A115" x="5.99692655" y="0.0796649215" width="3.84577401" height="1.0615288"></rect>
								<g fill="#FFFFFF">
									<path d="M2.61439548,0.0796649215 L1.16239548,0.0796649215 L0.374497175,0.0796649215 L0.111864407,0.0796649215 L0.111864407,11.6343455 L1.16214689,11.6343455 L1.16214689,8.10534031 L2.61439548,8.10534031 L2.61439548,11.6343455 L3.66430508,11.6343455 L3.66430508,0.0796649215 L3.30919774,0.0796649215 L2.61439548,0.0796649215 Z M2.61439548,7.04381152 L1.16239548,7.04381152 L1.16239548,4.57658639 L2.61451977,4.57658639 L2.61451977,7.04381152 L2.61439548,7.04381152 Z M1.16239548,3.51468063 L1.16239548,1.14119372 L2.61451977,1.14119372 L2.61451977,3.51480628 L1.16239548,3.51468063 L1.16239548,3.51468063 Z" id="形状"></path>
									<polygon id="路径" points="4.39776271 5.10747644 5.63684746 5.10747644 4.24102825 11.0423874 5.25563842 11.3176963 6.90526554 4.57658639 6.90824859 4.04569634 4.39776271 4.04569634"></polygon>
									<path d="M8.95114124,5.46056545 L11.093096,3.63656545 L10.416565,2.82458639 L8.35975141,4.5754555 L8.35975141,3.10856545 L8.35975141,2.55442932 L8.35975141,2.04703665 L5.16279096,2.04703665 L5.16279096,3.10856545 L7.30971751,3.10856545 L7.30971751,11.6343455 L8.35975141,11.6343455 L8.35975141,6.61118325 L10.7107684,11.1709319 L11.6419774,10.6802513 L8.95114124,5.46056545 Z M8.35987571,5.14517277 L8.35987571,5.11677487 L8.37640678,5.13662827 L8.35987571,5.14517277 Z" id="形状"></path>
								</g>
							</g>
						</g>
					</g>
				</g>
				</svg> 
				<img class="hover-show  maimai-bg" src="https://csdnimg.cn/release/phoenix/static_blog/images/maimai_bg.png?v1">
			</a>
		</li>
	</ul>
</div>
<div id = 'tool-post-common'>
	<div class = 'tool_post_box'>
		<img class = 'tool_post_img' src="https://csdnimg.cn/release/phoenix/write/assets/postShareBack.png" alt="">
		<div id = 'shareCode'></div>
	</div>
</div>
<div id="share-bg-shadow">
<div id="share-qrcode-box">
    <h3>分享到微信朋友圈</h3>
    <div class='qrcode-img-box'>
        <a class="btn-close">×</a>
        <div id='shareQrCode'></div>
	</div>
    <p>扫一扫，手机浏览</p>
</div>
</div>
<script>
		var imgReal = new Image();
		imgReal.src = "https://csdnimg.cn/release/phoenix/write/assets/postShareBack.png"
</script>
<script type=text/javascript crossorigin src="https://csdnimg.cn/release/phoenix/production/qrcode-7c90a92189.min.js"></script>
<script src="//g.csdnimg.cn/??sharewx/1.2.1/sharewx.js" type="text/javascript"></script>
<script src="https://g.csdnimg.cn/collection-box/1.1.2/collection-box.js?t=201908091" type="text/javascript"></script>
<script>
    var recommendCount = 78;
    recommendCount = recommendCount > 1 ? (recommendCount + (recommendCount>6 ? 2 : 1)) : recommendCount;
    var ChannelId = 16;
    var articleId = "81234825";
    var commentscount = 1;
    var islock = false;
    var curentUrl = "https://blog.csdn.net/a649344475/article/details/81234825";
    var myUrl = "https://my.csdn.net/";
    //1禁止评论，2正常
    var commentAuth = 2;
    //百度搜索
    var baiduKey = "Python Websocket - 医然";
    var needInsertBaidu = true;
    // 代码段样式
    var codeStyle = 'atom-one-dark';
	var highlight = ["Python","Websocket"];//高亮数组

    var share_card_url = 'https://blog.csdn.net/a649344475/article/shareArticleCardPage?article_id=81234825'
    var RecommendBlogExpertList = [{"user_name":"singleone111","nick_name":"singleone111","avatar":"https:\/\/profile.csdnimg.cn\/5\/9\/4\/3_singleone111","is_expert":false,"article_count":9,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"weixin_43486863","nick_name":"\u6709\u7cd6\u7231\u8fa3\u6761\u5440\u4e36","avatar":"https:\/\/profile.csdnimg.cn\/C\/A\/8\/3_weixin_43486863","is_expert":false,"article_count":17,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"CSDN_Boring","nick_name":"HuangDanGeeker","avatar":"https:\/\/profile.csdnimg.cn\/F\/E\/9\/3_csdn_boring","is_expert":false,"article_count":8,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"caobin0825","nick_name":"ABigCaiBird","avatar":"https:\/\/profile.csdnimg.cn\/A\/8\/D\/3_caobin0825","is_expert":false,"article_count":33,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"qq562029186","nick_name":"\u5927\u897f\u74dc-PaulChan","avatar":"https:\/\/profile.csdnimg.cn\/8\/D\/9\/3_qq562029186","is_expert":false,"article_count":120,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"Darkman_EX","nick_name":"Jerry_JD","avatar":"https:\/\/profile.csdnimg.cn\/3\/C\/6\/3_darkman_ex","is_expert":false,"article_count":163,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"weixin_42989364","nick_name":"\u91d1\u5174\u534e","avatar":"https:\/\/profile.csdnimg.cn\/A\/C\/A\/3_weixin_42989364","is_expert":false,"article_count":16,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"hch011","nick_name":"hch011","avatar":"https:\/\/profile.csdnimg.cn\/A\/3\/D\/3_hch011","is_expert":false,"article_count":2,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"Dt388426","nick_name":"\u4e00\u4e2a\u521a\u61c2python\u7684\u5c0f\u767d","avatar":"https:\/\/profile.csdnimg.cn\/6\/4\/3\/3_dt388426","is_expert":false,"article_count":6,"rank":"\u5343\u91cc\u4e4b\u5916"}];
	var articleType = 1;
	var CopyrightContent = '';
</script>
<script src="https://csdnimg.cn/public/sandalstrap/1.4/js/sandalstrap.min.js"></script>
<script src="https://csdnimg.cn/release/phoenix/vendor/pagination/paging-3d3b805766.js"></script>
<div class="skin-boxshadow"></div>
<div style="display:none;">
	<img src="" onerror='setTimeout(function(){if(!/(csdn.net|iteye.com|baiducontent.com|googleusercontent.com|360webcache.com|sogoucdn.com|bingj.com|baidu.com)$/.test(window.location.hostname)){window.location.href="\x68\x74\x74\x70\x73\x3a\x2f\x2f\x77\x77\x77\x2e\x63\x73\x64\x6e\x2e\x6e\x65\x74"}},3000);'>
</div>
</body>
<script type="text/javascript" src="https://csdnimg.cn/release/phoenix/production/pc_wap_common-f91259fb12.js" /></script>
<link rel="stylesheet" href="https://csdnimg.cn/release/blog_editor_html/release1.5.9/ckeditor/plugins/codesnippet/lib/highlight/styles/atom-one-dark.css">
<script>
 // 全局声明
 if (window.csdn === undefined) {
      window.csdn = {};
    }
    window.csdn.sideToolbar = {
        options: {
            report:{
                isShow: true,
            },
            qr: {
                isShow: false,
            }
        }
    }
    $(function(){
        $(document).on('click',"a.option-box[data-type='report']",function() {
            showReport(false,articleTitles)
        });
    })
</script>
<script src="https://csdnimg.cn/release/phoenix/vendor/iconfont/csdnc-c439e66521.js"></script>
<script src="https://csdnimg.cn/release/phoenix/template/js/common-d90c3ecc7d.min.js"></script>
<script src="https://csdnimg.cn/release/phoenix/template/js/detail-ffbab56068.min.js"></script>
	<script src="https://csdnimg.cn/release/phoenix/themes/skin-yellow/skin-yellow-e2b6be7b58.min.js"></script>
<script src="//g.csdnimg.cn/??login-box/1.0.7/login-box.js,login-box/1.0.7/login-auto.js,copyright/1.0.3/copyright.js" type="text/javascript"></script>
<script>
    $(".MathJax").remove();
    if ($('div.markdown_views pre.prettyprint code.hljs').length > 0) {
        $('div.markdown_views')[0].className = 'markdown_views';
    }
    var persentSet = 1;
</script>
<script type="text/javascript" src="https://csdnimg.cn/release/blog_mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
            "HTML-CSS": {
                    linebreaks: { automatic: true, width: "94%container" },
                    imageFont: null
            },
            tex2jax: {
                preview: "none"
            },
            mml2jax: {
                preview: 'none'
            }
    });
</script>
    <script src="//g.csdnimg.cn/baidu-search/1.0.2/baidu-search.js"  type="text/javascript"></script>
</html>
